From: Mark Wielaard Date: Sun, 29 Aug 2004 20:16:22 +0000 (+0000) Subject: 2004-08-29 Mark Wielaard X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6cd655a30268dffc23d317a615dac3fb88cbe096;p=gcc.git 2004-08-29 Mark Wielaard * 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 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 0b5bef2474e..33a66474af3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,22 @@ +2004-08-29 Mark Wielaard + + * 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. + 2004-08-29 Andrew John Hughes * java/util/AbstractCollection.java, java/util/AbstractList.java, diff --git a/libjava/java/util/Arrays.java b/libjava/java/util/Arrays.java index bd6458def00..e34901a23f1 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