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);
   }
 

Reply via email to