aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util/Arrays.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2004-08-29 20:16:22 +0000
committerAndreas Tobler <andreast@gcc.gnu.org>2004-08-29 22:16:22 +0200
commit6cd655a30268dffc23d317a615dac3fb88cbe096 (patch)
tree39cb148419bbdc33b0be615377407d88afa12068 /libjava/java/util/Arrays.java
parent4ca1f68f884d05a22695c0c247a72b32c49ec554 (diff)
downloadgcc-6cd655a30268dffc23d317a615dac3fb88cbe096.zip
gcc-6cd655a30268dffc23d317a615dac3fb88cbe096.tar.gz
gcc-6cd655a30268dffc23d317a615dac3fb88cbe096.tar.bz2
2004-08-29 Mark Wielaard <mark@klomp.org>
* java/util/Arrays.java (sort(byte[], int, int)): Check fromIndex < 0. (sort(char[], int, int)): Likewise. (sort(short[], int, int)): Likewise. (sort(int[], int, int)): Likewise. (sort(long[], int, int)): Likewise. (sort(float[], int, int)): Likewise. (sort(double[], int, int)): Likewise. (sort(Object[], int, int, Comparator)): Likewise. (qsort(byte[], int, int)): Honor lower bound from in insertion sort. (qsort(char[], int, int)): Likewise. (qsort(short[], int, int)): Likewise. (qsort(int[], int, int)): Likewise. (qsort(long[], int, int)): Likewise. (qsort(float[], int, int)): Likewise. (qsort(double[], int, int)): Likewise. From-SVN: r86734
Diffstat (limited to 'libjava/java/util/Arrays.java')
-rw-r--r--libjava/java/util/Arrays.java35
1 files changed, 26 insertions, 9 deletions
diff --git a/libjava/java/util/Arrays.java b/libjava/java/util/Arrays.java
index bd6458d..e34901a 100644
--- a/libjava/java/util/Arrays.java
+++ b/libjava/java/util/Arrays.java
@@ -1,5 +1,6 @@
/* Arrays.java -- Utility class with methods to operate on arrays
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -968,6 +969,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1028,7 +1031,7 @@ public class Arrays
if (count <= 7)
{
for (int i = from + 1; i < from + count; i++)
- for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
+ for (int j = i; j > from && array[j - 1] > array[j]; j--)
swap(j, j - 1, array);
return;
}
@@ -1130,6 +1133,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1190,7 +1195,7 @@ public class Arrays
if (count <= 7)
{
for (int i = from + 1; i < from + count; i++)
- for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
+ for (int j = i; j > from && array[j - 1] > array[j]; j--)
swap(j, j - 1, array);
return;
}
@@ -1292,6 +1297,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1352,8 +1359,8 @@ public class Arrays
if (count <= 7)
{
for (int i = from + 1; i < from + count; i++)
- for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
- swap(j, j - 1, array);
+ for (int j = i; j > from && array[j - 1] > array[j]; j--)
+ swap(j, j - 1, array);
return;
}
@@ -1454,6 +1461,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1526,7 +1535,7 @@ public class Arrays
if (count <= 7)
{
for (int i = from + 1; i < from + count; i++)
- for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
+ for (int j = i; j > from && array[j - 1] > array[j]; j--)
swap(j, j - 1, array);
return;
}
@@ -1628,6 +1637,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1700,7 +1711,7 @@ public class Arrays
if (count <= 7)
{
for (int i = from + 1; i < from + count; i++)
- for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
+ for (int j = i; j > from && array[j - 1] > array[j]; j--)
swap(j, j - 1, array);
return;
}
@@ -1802,6 +1813,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -1865,7 +1878,7 @@ public class Arrays
{
for (int i = from + 1; i < from + count; i++)
for (int j = i;
- j > 0 && Float.compare(array[j - 1], array[j]) > 0;
+ j > from && Float.compare(array[j - 1], array[j]) > 0;
j--)
{
swap(j, j - 1, array);
@@ -1970,6 +1983,8 @@ public class Arrays
{
if (fromIndex > toIndex)
throw new IllegalArgumentException();
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
qsort(a, fromIndex, toIndex - fromIndex);
}
@@ -2033,7 +2048,7 @@ public class Arrays
{
for (int i = from + 1; i < from + count; i++)
for (int j = i;
- j > 0 && Double.compare(array[j - 1], array[j]) > 0;
+ j > from && Double.compare(array[j - 1], array[j]) > 0;
j--)
{
swap(j, j - 1, array);
@@ -2203,6 +2218,8 @@ public class Arrays
if (fromIndex > toIndex)
throw new IllegalArgumentException("fromIndex " + fromIndex
+ " > toIndex " + toIndex);
+ if (fromIndex < 0)
+ throw new ArrayIndexOutOfBoundsException();
// In general, the code attempts to be simple rather than fast, the
// idea being that a good optimising JIT will be able to optimise it