Add error log to expensive ArraysCompatUtils.binarySearch

Change-Id: Id33998e2a99be9249de4011892555f10c5d0968d
This commit is contained in:
Tadashi G. Takaoka 2011-12-16 14:48:18 +09:00
parent a44685ab32
commit f8481883cc

View file

@ -16,10 +16,14 @@
package com.android.inputmethod.compat; package com.android.inputmethod.compat;
import android.util.Log;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
public class ArraysCompatUtils { public class ArraysCompatUtils {
private static final String TAG = ArraysCompatUtils.class.getSimpleName();
private static final Method METHOD_Arrays_binarySearch = CompatUtils private static final Method METHOD_Arrays_binarySearch = CompatUtils
.getMethod(Arrays.class, "binarySearch", int[].class, int.class, int.class, int.class); .getMethod(Arrays.class, "binarySearch", int[].class, int.class, int.class, int.class);
@ -33,8 +37,15 @@ public class ArraysCompatUtils {
} }
} }
/* package */ static int compatBinarySearch(int[] array, int startIndex, int endIndex, // TODO: Implement fast binary search
int value) { /* package for testing */
static int compatBinarySearch(int[] array, int startIndex, int endIndex, int value) {
// Output error log because this method has strict performance penalty.
// Note that this method has been called only from spell checker and spell checker exists
// only from IceCreamSandwich and after, so that there is no chance on pre-ICS device to
// invoke this method.
Log.e(TAG, "Invoked expensive binarySearch");
if (startIndex > endIndex) throw new IllegalArgumentException(); if (startIndex > endIndex) throw new IllegalArgumentException();
if (startIndex < 0 || endIndex > array.length) throw new ArrayIndexOutOfBoundsException(); if (startIndex < 0 || endIndex > array.length) throw new ArrayIndexOutOfBoundsException();