diff options
author | 2014-04-21 16:41:39 -0700 | |
---|---|---|
committer | 2014-04-21 19:59:21 -0700 | |
commit | edc7d02d76d969a9074b5de1022fde226696dbcd (patch) | |
tree | 75080a1fc183f1826a82a799df0417f813d70a91 /native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | |
parent | 61cb852d336543f120a9fa51fc40dda6b639da39 (diff) | |
download | latinime-edc7d02d76d969a9074b5de1022fde226696dbcd.tar.gz latinime-edc7d02d76d969a9074b5de1022fde226696dbcd.tar.xz latinime-edc7d02d76d969a9074b5de1022fde226696dbcd.zip |
Separate JniDataUtils::constructAttributeMap().
Bug: 14166482
Change-Id: Ic2dc407231743ea668fe0ab8869eb8a7f8b9625f
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp index f72366481..9ceea5b40 100644 --- a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp +++ b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp @@ -24,6 +24,7 @@ #include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h" #include "utils/autocorrection_threshold_utils.h" #include "utils/char_utils.h" +#include "utils/jni_data_utils.h" #include "utils/time_keeper.h" namespace latinime { @@ -43,29 +44,9 @@ static jboolean latinime_BinaryDictionaryUtils_createEmptyDictFile(JNIEnv *env, if (keyCount != valueCount) { return false; } - - DictionaryHeaderStructurePolicy::AttributeMap attributeMap; - for (int i = 0; i < keyCount; i++) { - jstring keyString = static_cast<jstring>( - env->GetObjectArrayElement(attributeKeyStringArray, i)); - const jsize keyUtf8Length = env->GetStringUTFLength(keyString); - char keyChars[keyUtf8Length + 1]; - env->GetStringUTFRegion(keyString, 0, env->GetStringLength(keyString), keyChars); - keyChars[keyUtf8Length] = '\0'; - DictionaryHeaderStructurePolicy::AttributeMap::key_type key; - HeaderReadWriteUtils::insertCharactersIntoVector(keyChars, &key); - - jstring valueString = static_cast<jstring>( - env->GetObjectArrayElement(attributeValueStringArray, i)); - const jsize valueUtf8Length = env->GetStringUTFLength(valueString); - char valueChars[valueUtf8Length + 1]; - env->GetStringUTFRegion(valueString, 0, env->GetStringLength(valueString), valueChars); - valueChars[valueUtf8Length] = '\0'; - DictionaryHeaderStructurePolicy::AttributeMap::mapped_type value; - HeaderReadWriteUtils::insertCharactersIntoVector(valueChars, &value); - attributeMap[key] = value; - } - + DictionaryHeaderStructurePolicy::AttributeMap attributeMap = + JniDataUtils::constructAttributeMap(env, attributeKeyStringArray, + attributeValueStringArray); return DictFileWritingUtils::createEmptyDictFile(filePathChars, static_cast<int>(dictVersion), CharUtils::convertShortArrayToIntVector(localeCodePoints, localeLength), &attributeMap); } |