aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/binary_format.h
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-08-10 16:52:27 +0900
committerJean Chalard <jchalard@google.com>2012-08-13 16:35:59 +0900
commitb14fc88e482e53ba6852c8d5da5d9826c68d041f (patch)
treea2be310d3b8b9961a47ff7fca3522650fe7df30c /native/jni/src/binary_format.h
parent814510305c21b3081414e75e040dec4b73f6cdf3 (diff)
downloadlatinime-b14fc88e482e53ba6852c8d5da5d9826c68d041f.tar.gz
latinime-b14fc88e482e53ba6852c8d5da5d9826c68d041f.tar.xz
latinime-b14fc88e482e53ba6852c8d5da5d9826c68d041f.zip
Tag the whitelisted entries in native code.
Since this is already used in Java land, this actually does activate the whitelist path, and the code is now fully functional. We still have to remove the old whitelist resource and to compile the dictionary that includes the whitelist. Bug: 6906525 Change-Id: Iacde5313e303b9ed792940efaf6bcfa4ee1317bd
Diffstat (limited to 'native/jni/src/binary_format.h')
-rw-r--r--native/jni/src/binary_format.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/native/jni/src/binary_format.h b/native/jni/src/binary_format.h
index 2ee4077c1..4cabc8404 100644
--- a/native/jni/src/binary_format.h
+++ b/native/jni/src/binary_format.h
@@ -52,6 +52,8 @@ class BinaryFormat {
// Mask for attribute frequency, stored on 4 bits inside the flags byte.
static const int MASK_ATTRIBUTE_FREQUENCY = 0x0F;
+ // The numeric value of the shortcut frequency that means 'whitelist'.
+ static const int WHITELIST_SHORTCUT_FREQUENCY = 15;
// Mask and flags for attribute address type selection.
static const int MASK_ATTRIBUTE_ADDRESS_TYPE = 0x30;
@@ -99,6 +101,7 @@ class BinaryFormat {
static bool hasChildrenInFlags(const uint8_t flags);
static int getAttributeAddressAndForwardPointer(const uint8_t *const dict, const uint8_t flags,
int *pos);
+ static int getAttributeFrequencyFromFlags(const int flags);
static int getTerminalPosition(const uint8_t *const root, const int32_t *const inWord,
const int length, const bool forceLowerCaseSearch);
static int getWordAtAddress(const uint8_t *const root, const int address, const int maxDepth,
@@ -340,6 +343,10 @@ inline int BinaryFormat::getAttributeAddressAndForwardPointer(const uint8_t *con
}
}
+inline int BinaryFormat::getAttributeFrequencyFromFlags(const int flags) {
+ return flags & MASK_ATTRIBUTE_FREQUENCY;
+}
+
// This function gets the byte position of the last chargroup of the exact matching word in the
// dictionary. If no match is found, it returns NOT_VALID_WORD.
inline int BinaryFormat::getTerminalPosition(const uint8_t *const root,