diff options
Diffstat (limited to 'native')
3 files changed, 8 insertions, 37 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. diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp index 4da339b0a..1d202c3dd 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp @@ -77,30 +77,6 @@ template<class DictConstants, class DictBuffers, class DictBuffersPtr> return dictBuffers->flush(dirPath); } -/* static */ bool DictFileWritingUtils::flushAllHeaderAndBodyToFile(const char *const filePath, - BufferWithExtendableBuffer *const dictHeader, BufferWithExtendableBuffer *const dictBody) { - const int tmpFileNameBufSize = FileUtils::getFilePathWithSuffixBufSize(filePath, - TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE); - // Name of a temporary file used for writing that is a connected string of original name and - // TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE. - char tmpFileName[tmpFileNameBufSize]; - FileUtils::getFilePathWithSuffix(filePath, TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE, - tmpFileNameBufSize, tmpFileName); - if (!DictFileWritingUtils::flushBufferToFile(tmpFileName, dictHeader)) { - AKLOGE("Dictionary header cannot be written to %s.", tmpFileName); - return false; - } - if (!DictFileWritingUtils::flushBufferToFile(tmpFileName, dictBody)) { - AKLOGE("Dictionary structure cannot be written to %s.", tmpFileName); - return false; - } - if (rename(tmpFileName, filePath) != 0) { - AKLOGE("Dictionary file %s cannot be renamed to %s", tmpFileName, filePath);; - return false; - } - return true; -} - /* static */ bool DictFileWritingUtils::flushBufferToFileWithSuffix(const char *const basePath, const char *const suffix, const BufferWithExtendableBuffer *const buffer) { const int filePathBufSize = FileUtils::getFilePathWithSuffixBufSize(basePath, suffix); diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h index 5df5856d2..0dd1256ee 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h @@ -35,10 +35,6 @@ class DictFileWritingUtils { const std::vector<int> localeAsCodePointVector, const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap); - static bool flushAllHeaderAndBodyToFile(const char *const filePath, - BufferWithExtendableBuffer *const dictHeader, - BufferWithExtendableBuffer *const dictBody); - static bool flushBufferToFileWithSuffix(const char *const basePath, const char *const suffix, const BufferWithExtendableBuffer *const buffer); |