diff options
author | 2014-05-14 09:07:45 +0000 | |
---|---|---|
committer | 2014-05-14 09:07:45 +0000 | |
commit | 72d6061efbc025fbf5774aace80376a07b44bb7e (patch) | |
tree | bb4c6e331c1e257730fd66d529a12afb1f588f23 /native/jni/src/utils/jni_data_utils.h | |
parent | ae1c53beadd5e739b49f16e6c45747ca3b469766 (diff) | |
parent | d2f7cd28aefb71f3f340f1a8572e5477e5f5dfb3 (diff) | |
download | latinime-72d6061efbc025fbf5774aace80376a07b44bb7e.tar.gz latinime-72d6061efbc025fbf5774aace80376a07b44bb7e.tar.xz latinime-72d6061efbc025fbf5774aace80376a07b44bb7e.zip |
Merge "Use JniDataUtils::outputCodePoints() to output code points"
Diffstat (limited to 'native/jni/src/utils/jni_data_utils.h')
-rw-r--r-- | native/jni/src/utils/jni_data_utils.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/native/jni/src/utils/jni_data_utils.h b/native/jni/src/utils/jni_data_utils.h index 2ce02dc05..0e393e315 100644 --- a/native/jni/src/utils/jni_data_utils.h +++ b/native/jni/src/utils/jni_data_utils.h @@ -65,6 +65,18 @@ class JniDataUtils { return attributeMap; } + static void outputCodePoints(JNIEnv *env, jintArray intArrayToOutputCodePoints, const int start, + const int maxLength, const int *const codePoints, const int codePointCount, + const bool needsNullTermination) { + const int outputCodePointCount = std::min(maxLength, codePointCount); + env->SetIntArrayRegion(intArrayToOutputCodePoints, start, outputCodePointCount, codePoints); + if (needsNullTermination && outputCodePointCount < maxLength) { + const int terminal = 0; + env->SetIntArrayRegion(intArrayToOutputCodePoints, start + outputCodePointCount, + 1 /* len */, &terminal); + } + } + private: DISALLOW_IMPLICIT_CONSTRUCTORS(JniDataUtils); }; |