aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroynagi <ksk@google.com>2013-06-21 01:30:12 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-06-21 01:30:12 -0700
commitc65d19fb9280ccfa8426970eeff874b5315e562d (patch)
treeb6e4baef220648fd7e20ca0a7ac0317fa2149f33
parent55687ef73101bc8843364ff9a9cb1e3d1d93d6c6 (diff)
parent21dfdcdba841f8866041cb0261feac907d6e686b (diff)
downloadlatinime-c65d19fb9280ccfa8426970eeff874b5315e562d.tar.gz
latinime-c65d19fb9280ccfa8426970eeff874b5315e562d.tar.xz
latinime-c65d19fb9280ccfa8426970eeff874b5315e562d.zip
am 21dfdcdb: Merge "Add ByteArrayUtils::readSignedInt24andAdvancePosition to read dynamic dictionaries."
* commit '21dfdcdba841f8866041cb0261feac907d6e686b': Add ByteArrayUtils::readSignedInt24andAdvancePosition to read dynamic dictionaries.
-rw-r--r--native/jni/src/suggest/core/dictionary/byte_array_utils.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/native/jni/src/suggest/core/dictionary/byte_array_utils.h b/native/jni/src/suggest/core/dictionary/byte_array_utils.h
index d3321f624..daa822ffa 100644
--- a/native/jni/src/suggest/core/dictionary/byte_array_utils.h
+++ b/native/jni/src/suggest/core/dictionary/byte_array_utils.h
@@ -57,6 +57,17 @@ class ByteArrayUtils {
return value;
}
+ static AK_FORCE_INLINE int readSint24andAdvancePosition(
+ const uint8_t *const buffer, int *const pos) {
+ const uint8_t value = readUint8(buffer, *pos);
+ if (value < 0x80) {
+ return readUint24andAdvancePosition(buffer, pos);
+ } else {
+ (*pos)++;
+ return -(((value & 0x7F) << 16) ^ readUint16andAdvancePosition(buffer, pos));
+ }
+ }
+
static AK_FORCE_INLINE uint32_t readUint24andAdvancePosition(
const uint8_t *const buffer, int *const pos) {
const uint32_t value = readUint24(buffer, *pos);