Hi,
Committing this patch for Cam, fixing Arrays.binarySearch for
zero-length arrays.
Cheers,
Francis
2007-01-08 Cameron McCormack <[EMAIL PROTECTED]>
PR 30355
* java/util/Arrays.java:
(binarySearch(byte[],byte)): Added check for zero-length array.
(binarySearch(short[],short)): Likewise.
(binarySearch(int[],int)): Likewise.
(binarySearch(long[],long)): Likewise.
(binarySearch(char[],char)): Likewise.
(binarySearch(float[],float)): Likewise.
(binarySearch(double[],double)): Likewise.
(binarySearch(Object[],Object)): Likewise.
(binarySearch(T[],T,Comparator)): Likewise.
Index: java/util/Arrays.java
===================================================================
RCS file: /sources/classpath/classpath/java/util/Arrays.java,v
retrieving revision 1.33
diff -u -r1.33 Arrays.java
--- java/util/Arrays.java 28 Dec 2006 23:30:53 -0000 1.33
+++ java/util/Arrays.java 2 Jan 2007 22:25:01 -0000
@@ -92,6 +92,8 @@
*/
public static int binarySearch(byte[] a, byte key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -154,6 +156,8 @@
*/
public static int binarySearch(char[] a, char key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -216,6 +220,8 @@
*/
public static int binarySearch(short[] a, short key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -278,6 +284,8 @@
*/
public static int binarySearch(int[] a, int key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -340,6 +348,8 @@
*/
public static int binarySearch(long[] a, long key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -402,6 +412,8 @@
*/
public static int binarySearch(float[] a, float key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -465,6 +477,8 @@
*/
public static int binarySearch(double[] a, double key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key);
}
@@ -533,6 +547,8 @@
*/
public static int binarySearch(Object[] a, Object key)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, key, null);
}
@@ -581,6 +597,8 @@
*/
public static <T> int binarySearch(T[] a, T key, Comparator<? super T> c)
{
+ if (a.length == 0)
+ return -1;
return binarySearch(a, 0, a.length - 1, key, c);
}