OSDN Git Service

* java/lang/natCharacter.cc (isLowerCase): Use a binary search.
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 May 1999 17:39:52 +0000 (17:39 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 May 1999 17:39:52 +0000 (17:39 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26829 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/natCharacter.cc

index 09740cd..4066dae 100644 (file)
@@ -1,5 +1,7 @@
 1999-05-07  Tom Tromey  <tromey@cygnus.com>
 
+       * java/lang/natCharacter.cc (isLowerCase): Use a binary search.
+
        * libtool-version: New file.
        * Makefile.in: Rebuilt.
        * Makefile.am (libgcj_la_LDFLAGS): Use -version-info, not
index 36cf570..fa312d1 100644 (file)
@@ -152,12 +152,27 @@ java::lang::Character::isLowerCase (jchar ch)
   if (table_search (lower_case_table, asize (lower_case_table), ch) != -1)
     return true;
 
-  // FIXME: use a binary search.
-  for (unsigned int i = 0; i < asize (lower_anomalous_table); ++i)
+  int low, high, i, old;
+
+  low = 0;
+  high = asize (lower_anomalous_table);
+  i = high / 2;
+
+  while (true)
     {
-      if (lower_anomalous_table[i] == ch)
+      if (ch < lower_anomalous_table[i])
+       high = i;
+      else if (ch > lower_anomalous_table[i])
+       low = i;
+      else
        return true;
+
+      old = i;
+      i = (high + low) / 2;
+      if (i == old)
+       break;
     }
+
   return false;
 }