summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 3add84a0a..22ad2d0ab 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -275,17 +275,16 @@ static jint latinime_BinaryDictionary_getMaxProbabilityOfExactMatches(
}
static jint latinime_BinaryDictionary_getNgramProbability(JNIEnv *env, jclass clazz,
- jlong dict, jintArray word0, jboolean isBeginningOfSentence, jintArray word1) {
+ jlong dict, jobjectArray prevWordCodePointArrays, jbooleanArray isBeginningOfSentenceArray,
+ jintArray word) {
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
if (!dictionary) return JNI_FALSE;
- const jsize word0Length = env->GetArrayLength(word0);
- const jsize word1Length = env->GetArrayLength(word1);
- int word0CodePoints[word0Length];
- int word1CodePoints[word1Length];
- env->GetIntArrayRegion(word0, 0, word0Length, word0CodePoints);
- env->GetIntArrayRegion(word1, 0, word1Length, word1CodePoints);
- const PrevWordsInfo prevWordsInfo(word0CodePoints, word0Length, isBeginningOfSentence);
- return dictionary->getNgramProbability(&prevWordsInfo, word1CodePoints, word1Length);
+ const jsize wordLength = env->GetArrayLength(word);
+ int wordCodePoints[wordLength];
+ env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
+ const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env,
+ prevWordCodePointArrays, isBeginningOfSentenceArray);
+ return dictionary->getNgramProbability(&prevWordsInfo, wordCodePoints, wordLength);
}
// Method to iterate all words in the dictionary for makedict.