aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-07-11 12:07:44 +0900
committerJean Chalard <jchalard@google.com>2012-07-12 13:09:44 +0900
commitcc470c78e4538ec05ed78959da041e2ce5ba846a (patch)
tree38f15e7f70ce425d59868672dcb6dce26e64ed3a /native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
parent6a5d17cd2f55cdab01900af8933cb71b97b73a29 (diff)
downloadlatinime-cc470c78e4538ec05ed78959da041e2ce5ba846a.tar.gz
latinime-cc470c78e4538ec05ed78959da041e2ce5ba846a.tar.xz
latinime-cc470c78e4538ec05ed78959da041e2ce5ba846a.zip
Move an implementation detail to native code (A107)
Java code does not have to know about this implementation detail: the generic method should do the dispatching, instead of having the caller call either method. Change-Id: Ic13727f0cb18f4ced2c356cce2f8d710588c0421
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 5e3167bc3..8970e671d 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -147,10 +147,17 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jobject object,
jint *prevWordChars = prevWordForBigrams
? env->GetIntArrayElements(prevWordForBigrams, 0) : 0;
jsize prevWordLength = prevWordChars ? env->GetArrayLength(prevWordForBigrams) : 0;
- int count = dictionary->getSuggestions(pInfo, xCoordinates, yCoordinates, times, pointerIds,
- inputCodes, arraySize, prevWordChars, prevWordLength, commitPoint, isGesture,
- useFullEditDistance, (unsigned short*) outputChars,
- frequencies, spaceIndices);
+
+ int count;
+ if (isGesture || arraySize > 1) {
+ count = dictionary->getSuggestions(pInfo, xCoordinates, yCoordinates, times, pointerIds,
+ inputCodes, arraySize, prevWordChars, prevWordLength, commitPoint, isGesture,
+ useFullEditDistance, (unsigned short*) outputChars, frequencies, spaceIndices);
+ } else {
+ count = dictionary->getBigrams(prevWordChars, prevWordLength, inputCodes,
+ arraySize, (unsigned short*) outputChars, frequencies);
+ }
+
if (prevWordChars) {
env->ReleaseIntArrayElements(prevWordForBigrams, prevWordChars, JNI_ABORT);
}