diff options
author | 2010-07-16 13:02:45 +0900 | |
---|---|---|
committer | 2010-07-16 13:02:45 +0900 | |
commit | b9c57e6540502ef3b2941235bbbede4dedfdcfb7 (patch) | |
tree | c8ccdc1455ab21eaef06c2b053ac7cada78de9f9 /native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp | |
parent | b5a0d8ef42d9e0be4e56be04637c167074447744 (diff) | |
parent | 2a118d844e0b7dd3e01f25e937b02b05711768a6 (diff) | |
download | latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.tar.gz latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.tar.xz latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.zip |
Merge remote branch 'goog/master'
Conflicts:
java/res/xml/prefs.xml
java/src/com/android/inputmethod/latin/BinaryDictionary.java
java/src/com/android/inputmethod/latin/Dictionary.java
java/src/com/android/inputmethod/latin/ExpandableDictionary.java
java/src/com/android/inputmethod/latin/LatinIME.java
java/src/com/android/inputmethod/latin/Suggest.java
tests/src/com/android/inputmethod/latin/tests/SuggestTests.java
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp index bb45cb538..4fe80da69 100644 --- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp @@ -59,8 +59,7 @@ static int latinime_BinaryDictionary_getSuggestions( jint maxAlternatives, jint skipPos, jintArray nextLettersArray, jint nextLettersSize) { Dictionary *dictionary = (Dictionary*) dict; - if (dictionary == NULL) - return 0; + if (dictionary == NULL) return 0; int *frequencies = env->GetIntArrayElements(frequencyArray, NULL); int *inputCodes = env->GetIntArrayElements(inputArray, NULL); @@ -81,6 +80,28 @@ static int latinime_BinaryDictionary_getSuggestions( return count; } +static int latinime_BinaryDictionary_getBigrams + (JNIEnv *env, jobject object, jint dict, jcharArray wordArray, jint wordLength, + jcharArray outputArray, jintArray frequencyArray, jint maxWordLength, jint maxBigrams) +{ + Dictionary *dictionary = (Dictionary*) dict; + if (dictionary == NULL) return 0; + + jchar *word = env->GetCharArrayElements(wordArray, NULL); + jchar *outputChars = env->GetCharArrayElements(outputArray, NULL); + int *frequencies = env->GetIntArrayElements(frequencyArray, NULL); + + int count = dictionary->getBigrams((unsigned short*) word, wordLength, + (unsigned short*) outputChars, frequencies, maxWordLength, maxBigrams); + + env->ReleaseCharArrayElements(wordArray, word, JNI_ABORT); + env->ReleaseCharArrayElements(outputArray, outputChars, 0); + env->ReleaseIntArrayElements(frequencyArray, frequencies, 0); + + return count; +} + + static jboolean latinime_BinaryDictionary_isValidWord (JNIEnv *env, jobject object, jint dict, jcharArray wordArray, jint wordLength) { @@ -108,7 +129,8 @@ static JNINativeMethod gMethods[] = { (void*)latinime_BinaryDictionary_open}, {"closeNative", "(I)V", (void*)latinime_BinaryDictionary_close}, {"getSuggestionsNative", "(I[II[C[IIIII[II)I", (void*)latinime_BinaryDictionary_getSuggestions}, - {"isValidWordNative", "(I[CI)Z", (void*)latinime_BinaryDictionary_isValidWord} + {"isValidWordNative", "(I[CI)Z", (void*)latinime_BinaryDictionary_isValidWord}, + {"getBigramsNative", "(I[CI[C[III)I", (void*)latinime_BinaryDictionary_getBigrams} }; static int registerNativeMethods(JNIEnv* env, const char* className, |