diff options
author | 2014-10-02 02:09:20 +0000 | |
---|---|---|
committer | 2014-10-02 02:09:23 +0000 | |
commit | 0afad267c5a8ef1fbac0fa37b215638830b29604 (patch) | |
tree | 07a24a3f9daf6c4f95cbfd77d288b3384eeb205e /native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp | |
parent | 5a4e1c5a67bbb64b6be880c4be41a6e6871769b5 (diff) | |
parent | 29777e3a8a419c7c897637372c908566c6490e90 (diff) | |
download | latinime-0afad267c5a8ef1fbac0fa37b215638830b29604.tar.gz latinime-0afad267c5a8ef1fbac0fa37b215638830b29604.tar.xz latinime-0afad267c5a8ef1fbac0fa37b215638830b29604.zip |
Merge "Implement updateCounter() by using existing entry adding methods."
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp index 1e6baa5ec..365217a60 100644 --- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp @@ -374,7 +374,7 @@ static bool latinime_BinaryDictionary_addUnigramEntry(JNIEnv *env, jclass clazz, // Use 1 for count to indicate the word has inputted. const UnigramProperty unigramProperty(isBeginningOfSentence, isNotAWord, isBlacklisted, probability, HistoricalInfo(timestamp, 0 /* level */, 1 /* count */), - &shortcuts); + std::move(shortcuts)); return dictionary->addUnigramEntry(CodePointArrayView(codePoints, codePointCount), &unigramProperty); } @@ -434,10 +434,16 @@ static bool latinime_BinaryDictionary_updateCounter(JNIEnv *env, jclass clazz, j if (!dictionary) { return false; } - jsize wordLength = env->GetArrayLength(word); - int wordCodePoints[wordLength]; - env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints); - return false; + const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env, + prevWordCodePointArrays, isBeginningOfSentenceArray, + env->GetArrayLength(prevWordCodePointArrays)); + jsize codePointCount = env->GetArrayLength(word); + int wordCodePoints[codePointCount]; + env->GetIntArrayRegion(word, 0, codePointCount, wordCodePoints); + const HistoricalInfo historicalInfo(timestamp, 0 /* level */, count); + return dictionary->updateCounter(&prevWordsInfo, + CodePointArrayView(wordCodePoints, codePointCount), isValidWord == JNI_TRUE, + historicalInfo); } // Returns how many language model params are processed. @@ -509,7 +515,7 @@ static int latinime_BinaryDictionary_addMultipleDictionaryEntries(JNIEnv *env, j // Use 1 for count to indicate the word has inputted. const UnigramProperty unigramProperty(false /* isBeginningOfSentence */, isNotAWord, isBlacklisted, unigramProbability, - HistoricalInfo(timestamp, 0 /* level */, 1 /* count */), &shortcuts); + HistoricalInfo(timestamp, 0 /* level */, 1 /* count */), std::move(shortcuts)); dictionary->addUnigramEntry(CodePointArrayView(word1CodePoints, word1Length), &unigramProperty); if (word0) { |