diff options
author | 2013-06-21 01:30:12 -0700 | |
---|---|---|
committer | 2013-06-21 01:30:12 -0700 | |
commit | c65d19fb9280ccfa8426970eeff874b5315e562d (patch) | |
tree | b6e4baef220648fd7e20ca0a7ac0317fa2149f33 | |
parent | 55687ef73101bc8843364ff9a9cb1e3d1d93d6c6 (diff) | |
parent | 21dfdcdba841f8866041cb0261feac907d6e686b (diff) | |
download | latinime-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.h | 11 |
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); |