diff options
author | 2014-04-22 12:01:22 -0700 | |
---|---|---|
committer | 2014-04-22 12:01:22 -0700 | |
commit | 903be5bbd33b664c7e691d8bee0dd4d6376947bc (patch) | |
tree | 8beceec3236b59a822b8179c14191c942fd07017 /native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp | |
parent | 361881b82b387345ca8ddfad401feb71c21bee55 (diff) | |
download | latinime-903be5bbd33b664c7e691d8bee0dd4d6376947bc.tar.gz latinime-903be5bbd33b664c7e691d8bee0dd4d6376947bc.tar.xz latinime-903be5bbd33b664c7e691d8bee0dd4d6376947bc.zip |
Implement latinime_BinaryDictionary_createOnMemory().
Bug: 14166482
Change-Id: If7ec3345ab34edcd6bc5cef9e72580ced894a0e3
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, |