From c59c5e9a6508d3a72fe058126482083ad2e5ceeb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 7 May 1999 17:39:52 +0000 Subject: * java/lang/natCharacter.cc (isLowerCase): Use a binary search. From-SVN: r26829 --- libjava/java/lang/natCharacter.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/lang/natCharacter.cc b/libjava/java/lang/natCharacter.cc index 36cf570..fa312d1 100644 --- a/libjava/java/lang/natCharacter.cc +++ b/libjava/java/lang/natCharacter.cc @@ -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; } -- cgit v1.1