Arrays.java (binarySearch): Change comparison order.

2007-01-23  Marco Trudel  <mtrudel@gmx.ch>

	* java/util/Arrays.java (binarySearch): Change comparison order.

From-SVN: r121091
This commit is contained in:
Marco Trudel 2007-01-24 00:30:54 +01:00 committed by Tom Tromey
parent 815951d8f0
commit 26578e6092
4 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2007-01-23 Marco Trudel <mtrudel@gmx.ch>
* java/util/Arrays.java (binarySearch): Change comparison order.
2007-01-17 Tom Tromey <tromey@redhat.com> 2007-01-17 Tom Tromey <tromey@redhat.com>
* tools/gnu/classpath/tools/javah/PathOptionGroup.java * tools/gnu/classpath/tools/javah/PathOptionGroup.java

View File

@ -1,5 +1,5 @@
/* Arrays.java -- Utility class with methods to operate on arrays /* Arrays.java -- Utility class with methods to operate on arrays
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
@ -370,10 +370,13 @@ public class Arrays
while (low <= hi) while (low <= hi)
{ {
mid = (low + hi) >>> 1; mid = (low + hi) >>> 1;
final int d = Collections.compare(key, a[mid], c); // NOTE: Please keep the order of a[mid] and key. Although
// not required by the specs, the RI has it in this order as
// well, and real programs (erroneously) depend on it.
final int d = Collections.compare(a[mid], key, c);
if (d == 0) if (d == 0)
return mid; return mid;
else if (d < 0) else if (d > 0)
hi = mid - 1; hi = mid - 1;
else else
// This gets the insertion point right on the last loop // This gets the insertion point right on the last loop