aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-04-23 15:37:07 +0900
committerJean Chalard <jchalard@google.com>2012-04-23 16:05:36 +0900
commit522a04ea5b249d0af556647d2abcad57e5b99b4f (patch)
tree7bb086debeed66c3b2fd32137db9b2586532026f /native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
parent0df78d46da1ef0d42196f3baa9d5f6df5932afb6 (diff)
downloadlatinime-522a04ea5b249d0af556647d2abcad57e5b99b4f.tar.gz
latinime-522a04ea5b249d0af556647d2abcad57e5b99b4f.tar.xz
latinime-522a04ea5b249d0af556647d2abcad57e5b99b4f.zip
Pass words as int[] to the native code.
We need to get the bigrams during the call to getSuggestions for bug#6313806. We already give an int[] to getSuggestions and we wanted to get rid of char[]'s anyway because it doesn't work with surrogate pairs, so here we go. Bug: 6313806 Change-Id: I56ce99f1db6b3302cdf42f0527343bded837091e
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 2ef72e1e8..3e72ce684 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -153,30 +153,30 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jobject object,
}
static int latinime_BinaryDictionary_getBigrams(JNIEnv *env, jobject object, jlong dict,
- jcharArray prevWordArray, jint prevWordLength, jintArray inputArray, jint inputArraySize,
+ jintArray prevWordArray, jint prevWordLength, jintArray inputArray, jint inputArraySize,
jcharArray outputArray, jintArray frequencyArray, jint maxWordLength, jint maxBigrams) {
Dictionary *dictionary = (Dictionary*)dict;
if (!dictionary) return 0;
- jchar *prevWord = env->GetCharArrayElements(prevWordArray, 0);
+ jint *prevWord = env->GetIntArrayElements(prevWordArray, 0);
int *inputCodes = env->GetIntArrayElements(inputArray, 0);
jchar *outputChars = env->GetCharArrayElements(outputArray, 0);
int *frequencies = env->GetIntArrayElements(frequencyArray, 0);
- int count = dictionary->getBigrams((unsigned short*) prevWord, prevWordLength, inputCodes,
+ int count = dictionary->getBigrams(prevWord, prevWordLength, inputCodes,
inputArraySize, (unsigned short*) outputChars, frequencies, maxWordLength, maxBigrams);
env->ReleaseIntArrayElements(frequencyArray, frequencies, 0);
env->ReleaseCharArrayElements(outputArray, outputChars, 0);
env->ReleaseIntArrayElements(inputArray, inputCodes, JNI_ABORT);
- env->ReleaseCharArrayElements(prevWordArray, prevWord, JNI_ABORT);
+ env->ReleaseIntArrayElements(prevWordArray, prevWord, JNI_ABORT);
return count;
}
static jboolean latinime_BinaryDictionary_isValidWord(JNIEnv *env, jobject object, jlong dict,
- jcharArray wordArray, jint wordLength) {
+ jintArray wordArray, jint wordLength) {
Dictionary *dictionary = (Dictionary*)dict;
if (!dictionary) return (jboolean) false;
- jchar *word = env->GetCharArrayElements(wordArray, 0);
- jboolean result = dictionary->isValidWord((unsigned short*) word, wordLength);
- env->ReleaseCharArrayElements(wordArray, word, JNI_ABORT);
+ jint *word = env->GetIntArrayElements(wordArray, 0);
+ jboolean result = dictionary->isValidWord(word, wordLength);
+ env->ReleaseIntArrayElements(wordArray, word, JNI_ABORT);
return result;
}
@@ -236,8 +236,8 @@ static JNINativeMethod sMethods[] = {
{"closeNative", "(J)V", (void*)latinime_BinaryDictionary_close},
{"getSuggestionsNative", "(JJ[I[I[II[IZ[C[I)I",
(void*)latinime_BinaryDictionary_getSuggestions},
- {"isValidWordNative", "(J[CI)Z", (void*)latinime_BinaryDictionary_isValidWord},
- {"getBigramsNative", "(J[CI[II[C[III)I", (void*)latinime_BinaryDictionary_getBigrams},
+ {"isValidWordNative", "(J[II)Z", (void*)latinime_BinaryDictionary_isValidWord},
+ {"getBigramsNative", "(J[II[II[C[III)I", (void*)latinime_BinaryDictionary_getBigrams},
{"calcNormalizedScoreNative", "([CI[CII)D",
(void*)latinime_BinaryDictionary_calcNormalizedScore},
{"editDistanceNative", "([CI[CI)I", (void*)latinime_BinaryDictionary_editDistance}