aboutsummaryrefslogtreecommitdiffstats
path: root/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r--dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index c9e158c4c..3076085e4 100644
--- a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -38,6 +38,7 @@ using namespace android;
static jfieldID sDescriptorField;
static jfieldID sAssetManagerNativeField;
static jmethodID sAddWordMethod;
+static jfieldID sDictLength;
//
// helper function to throw an exception
@@ -79,6 +80,7 @@ static jint latinime_BinaryDictionary_open
}
Dictionary *dictionary = new Dictionary(dict, typedLetterMultiplier, fullWordMultiplier);
dictionary->setAsset(dictAsset);
+ env->SetIntField(object, sDictLength, (jint) dictAsset->getLength());
env->ReleaseStringUTFChars(resourceString, resourcePath);
return (jint) dictionary;
@@ -176,6 +178,14 @@ static int registerNatives(JNIEnv *env)
}
sAssetManagerNativeField = env->GetFieldID(clazz, "mObject", "I");
+ // Get the field pointer for the dictionary length
+ clazz = env->FindClass(kClassPathName);
+ if (clazz == NULL) {
+ LOGE("Can't find %s", kClassPathName);
+ return -1;
+ }
+ sDictLength = env->GetFieldID(clazz, "mDictLength", "I");
+
return registerNativeMethods(env,
kClassPathName, gMethods, sizeof(gMethods) / sizeof(gMethods[0]));
}