aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 3e72ce684..de9dbf9fd 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -137,13 +137,15 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jobject object,
int *frequencies = env->GetIntArrayElements(frequencyArray, 0);
int *inputCodes = env->GetIntArrayElements(inputArray, 0);
jchar *outputChars = env->GetCharArrayElements(outputArray, 0);
- // Deactivated to prevent unused variable errors.
- // TODO: use the following variables.
- // jint *prevWordChars = prevWordForBigrams
- // ? env->GetIntArrayElements(prevWordForBigrams, 0) : NULL;
- // jsize prevWordLength = prevWordChars ? env->GetArrayLength(prevWordForBigrams) : 0;
+ jint *prevWordChars = prevWordForBigrams
+ ? env->GetIntArrayElements(prevWordForBigrams, 0) : 0;
+ jsize prevWordLength = prevWordChars ? env->GetArrayLength(prevWordForBigrams) : 0;
int count = dictionary->getSuggestions(pInfo, xCoordinates, yCoordinates, inputCodes,
- arraySize, useFullEditDistance, (unsigned short*) outputChars, frequencies);
+ arraySize, prevWordChars, prevWordLength, useFullEditDistance,
+ (unsigned short*) outputChars, frequencies);
+ if (prevWordChars) {
+ env->ReleaseIntArrayElements(prevWordForBigrams, prevWordChars, JNI_ABORT);
+ }
env->ReleaseCharArrayElements(outputArray, outputChars, 0);
env->ReleaseIntArrayElements(inputArray, inputCodes, JNI_ABORT);
env->ReleaseIntArrayElements(frequencyArray, frequencies, 0);