Fix unit tests that use getNgramProbabilityNative().
Change-Id: I8548094bc8d1a0ea125b29e2a0ea82a6834b3e48
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 3add84a..22ad2d0 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_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.