aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/suggest/core/result/suggestion_results.cpp21
-rw-r--r--native/jni/src/utils/jni_data_utils.h9
2 files changed, 17 insertions, 13 deletions
diff --git a/native/jni/src/suggest/core/result/suggestion_results.cpp b/native/jni/src/suggest/core/result/suggestion_results.cpp
index 6594a1292..4c10bd08a 100644
--- a/native/jni/src/suggest/core/result/suggestion_results.cpp
+++ b/native/jni/src/suggest/core/result/suggestion_results.cpp
@@ -32,24 +32,19 @@ void SuggestionResults::outputSuggestions(JNIEnv *env, jintArray outSuggestionCo
JniDataUtils::outputCodePoints(env, outputCodePointsArray, start,
MAX_WORD_LENGTH /* maxLength */, suggestedWord.getCodePoint(),
suggestedWord.getCodePointCount(), true /* needsNullTermination */);
- const int score = suggestedWord.getScore();
- env->SetIntArrayRegion(outScoresArray, outputIndex, 1 /* len */, &score);
- const int indexToPartialCommit = suggestedWord.getIndexToPartialCommit();
- env->SetIntArrayRegion(outSpaceIndicesArray, outputIndex, 1 /* len */,
- &indexToPartialCommit);
- const int type = suggestedWord.getType();
- env->SetIntArrayRegion(outTypesArray, outputIndex, 1 /* len */, &type);
+ JniDataUtils::putIntToArray(env, outScoresArray, outputIndex, suggestedWord.getScore());
+ JniDataUtils::putIntToArray(env, outSpaceIndicesArray, outputIndex,
+ suggestedWord.getIndexToPartialCommit());
+ JniDataUtils::putIntToArray(env, outTypesArray, outputIndex, suggestedWord.getType());
if (mSuggestedWords.size() == 1) {
- const int autoCommitFirstWordConfidence =
- suggestedWord.getAutoCommitFirstWordConfidence();
- env->SetIntArrayRegion(outAutoCommitFirstWordConfidenceArray, 0 /* start */,
- 1 /* len */, &autoCommitFirstWordConfidence);
+ JniDataUtils::putIntToArray(env, outAutoCommitFirstWordConfidenceArray, 0 /* index */,
+ suggestedWord.getAutoCommitFirstWordConfidence());
}
++outputIndex;
mSuggestedWords.pop();
}
- env->SetIntArrayRegion(outSuggestionCount, 0 /* start */, 1 /* len */, &outputIndex);
- env->SetFloatArrayRegion(outLanguageWeight, 0 /* start */, 1 /* len */, &mLanguageWeight);
+ JniDataUtils::putIntToArray(env, outSuggestionCount, 0 /* index */, outputIndex);
+ JniDataUtils::putFloatToArray(env, outLanguageWeight, 0 /* index */, mLanguageWeight);
}
void SuggestionResults::addPrediction(const int *const codePoints, const int codePointCount,
diff --git a/native/jni/src/utils/jni_data_utils.h b/native/jni/src/utils/jni_data_utils.h
index 01a5685b4..67a66fdfe 100644
--- a/native/jni/src/utils/jni_data_utils.h
+++ b/native/jni/src/utils/jni_data_utils.h
@@ -90,6 +90,15 @@ class JniDataUtils {
}
}
+ static void putIntToArray(JNIEnv *env, jintArray array, const int index, const int value) {
+ env->SetIntArrayRegion(array, index, 1 /* len */, &value);
+ }
+
+ static void putFloatToArray(JNIEnv *env, jfloatArray array, const int index,
+ const float value) {
+ env->SetFloatArrayRegion(array, index, 1 /* len */, &value);
+ }
+
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(JniDataUtils);