diff options
author | 2014-04-22 17:07:27 +0000 | |
---|---|---|
committer | 2014-04-22 17:07:27 +0000 | |
commit | 361881b82b387345ca8ddfad401feb71c21bee55 (patch) | |
tree | b5d6624ddf1b94062a8291628431bd7bcf51b6d6 /native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | |
parent | 68b4f2ada9f0208084dca130b59f0a9f2a37ecf6 (diff) | |
parent | edc7d02d76d969a9074b5de1022fde226696dbcd (diff) | |
download | latinime-361881b82b387345ca8ddfad401feb71c21bee55.tar.gz latinime-361881b82b387345ca8ddfad401feb71c21bee55.tar.xz latinime-361881b82b387345ca8ddfad401feb71c21bee55.zip |
Merge "Separate JniDataUtils::constructAttributeMap()."
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); } |