From af580087de828a3d9a6af4d5eaf5bf8683f532b6 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 3 Aug 2009 12:56:35 -0700 Subject: [PATCH] DO NOT MERGE ( Already in master ): Fix a global reference leak. # 2026571 Fix incorrect usage of Release<>ArrayElements. Code was not releasing global references. IME would have crashed in 50000 key presses. --- .../jni/com_android_inputmethod_latin_BinaryDictionary.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp index 65c640b40..a1f410db2 100644 --- a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +++ b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp @@ -100,9 +100,9 @@ static int latinime_BinaryDictionary_getSuggestions( int count = dictionary->getSuggestions(inputCodes, arraySize, (unsigned short*) outputChars, frequencies, maxWordLength, maxWords, maxAlternatives); - env->ReleaseIntArrayElements(frequencyArray, frequencies, JNI_COMMIT); + env->ReleaseIntArrayElements(frequencyArray, frequencies, 0); env->ReleaseIntArrayElements(inputArray, inputCodes, JNI_ABORT); - env->ReleaseCharArrayElements(outputArray, outputChars, JNI_COMMIT); + env->ReleaseCharArrayElements(outputArray, outputChars, 0); return count; }