diff options
author | 2014-04-22 19:15:49 +0000 | |
---|---|---|
committer | 2014-04-22 19:15:49 +0000 | |
commit | 15381179602c4a8e8d5e6749ca8b72e94a2bbd43 (patch) | |
tree | 8beceec3236b59a822b8179c14191c942fd07017 /native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | |
parent | 1f5d2f6746f31c87b591c4a4159b1550a9a899d7 (diff) | |
parent | 903be5bbd33b664c7e691d8bee0dd4d6376947bc (diff) | |
download | latinime-15381179602c4a8e8d5e6749ca8b72e94a2bbd43.tar.gz latinime-15381179602c4a8e8d5e6749ca8b72e94a2bbd43.tar.xz latinime-15381179602c4a8e8d5e6749ca8b72e94a2bbd43.zip |
am 903be5bb: Implement latinime_BinaryDictionary_createOnMemory().
* commit '903be5bbd33b664c7e691d8bee0dd4d6376947bc':
Implement latinime_BinaryDictionary_createOnMemory().
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp index 9ceea5b40..0a34b783a 100644 --- a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp +++ b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp @@ -36,9 +36,14 @@ static jboolean latinime_BinaryDictionaryUtils_createEmptyDictFile(JNIEnv *env, char filePathChars[filePathUtf8Length + 1]; env->GetStringUTFRegion(filePath, 0, env->GetStringLength(filePath), filePathChars); filePathChars[filePathUtf8Length] = '\0'; - jsize localeLength = env->GetStringLength(locale); - jchar localeCodePoints[localeLength]; - env->GetStringRegion(locale, 0, localeLength, localeCodePoints); + + const jsize localeUtf8Length = env->GetStringUTFLength(locale); + char localeChars[localeUtf8Length + 1]; + env->GetStringUTFRegion(locale, 0, env->GetStringLength(locale), localeChars); + localeChars[localeUtf8Length] = '\0'; + std::vector<int> localeCodePoints; + HeaderReadWriteUtils::insertCharactersIntoVector(localeChars, &localeCodePoints); + const int keyCount = env->GetArrayLength(attributeKeyStringArray); const int valueCount = env->GetArrayLength(attributeValueStringArray); if (keyCount != valueCount) { @@ -48,7 +53,7 @@ static jboolean latinime_BinaryDictionaryUtils_createEmptyDictFile(JNIEnv *env, JniDataUtils::constructAttributeMap(env, attributeKeyStringArray, attributeValueStringArray); return DictFileWritingUtils::createEmptyDictFile(filePathChars, static_cast<int>(dictVersion), - CharUtils::convertShortArrayToIntVector(localeCodePoints, localeLength), &attributeMap); + localeCodePoints, &attributeMap); } static jfloat latinime_BinaryDictionaryUtils_calcNormalizedScore(JNIEnv *env, jclass clazz, |