Loading native/jni/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ LATIN_IME_CORE_SRC_FILES := \ suggest/core/session/dic_traverse_session.cpp \ $(addprefix suggest/policyimpl/dictionary/, \ dynamic_patricia_trie_policy.cpp \ patricia_trie_policy.cpp) \ patricia_trie_policy.cpp \ patricia_trie_reading_utils.cpp) \ suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \ $(addprefix suggest/policyimpl/typing/, \ scoring_params.cpp \ Loading native/jni/src/suggest/core/dictionary/binary_dictionary_terminal_attributes_reading_utils.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -44,15 +44,15 @@ const int TaUtils::WHITELIST_SHORTCUT_PROBABILITY = 15; const int origin = *pos; switch (MASK_ATTRIBUTE_ADDRESS_TYPE & flags) { case FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE: offset = ByteArrayUtils::readUint8andAdvancePosition( offset = ByteArrayUtils::readUint8AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; case FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES: offset = ByteArrayUtils::readUint16andAdvancePosition( offset = ByteArrayUtils::readUint16AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; case FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES: offset = ByteArrayUtils::readUint24andAdvancePosition( offset = ByteArrayUtils::readUint24AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; } Loading native/jni/src/suggest/core/dictionary/binary_dictionary_terminal_attributes_reading_utils.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ class BinaryDictionaryTerminalAttributesReadingUtils { static AK_FORCE_INLINE TerminalAttributeFlags getFlagsAndForwardPointer( const BinaryDictionaryInfo *const binaryDictionaryInfo, int *const pos) { return ByteArrayUtils::readUint8andAdvancePosition( return ByteArrayUtils::readUint8AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); } Loading Loading @@ -66,7 +66,7 @@ class BinaryDictionaryTerminalAttributesReadingUtils { static AK_FORCE_INLINE int getShortcutListSizeAndForwardPointer( const BinaryDictionaryInfo *const binaryDictionaryInfo, int *const pos) { // readUint16andAdvancePosition() returns an offset *including* the uint16 field itself. return ByteArrayUtils::readUint16andAdvancePosition( return ByteArrayUtils::readUint16AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos) - SHORTCUT_LIST_SIZE_FIELD_SIZE; } Loading native/jni/src/suggest/core/dictionary/byte_array_utils.h +8 −8 Original line number Diff line number Diff line Loading @@ -50,39 +50,39 @@ class ByteArrayUtils { return buffer[pos]; } static AK_FORCE_INLINE uint32_t readUint32andAdvancePosition( static AK_FORCE_INLINE uint32_t readUint32AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint32_t value = readUint32(buffer, *pos); *pos += 4; return value; } static AK_FORCE_INLINE int readSint24andAdvancePosition( 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); return readUint24AndAdvancePosition(buffer, pos); } else { (*pos)++; return -(((value & 0x7F) << 16) ^ readUint16andAdvancePosition(buffer, pos)); return -(((value & 0x7F) << 16) ^ readUint16AndAdvancePosition(buffer, pos)); } } static AK_FORCE_INLINE uint32_t readUint24andAdvancePosition( static AK_FORCE_INLINE uint32_t readUint24AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint32_t value = readUint24(buffer, *pos); *pos += 3; return value; } static AK_FORCE_INLINE uint16_t readUint16andAdvancePosition( static AK_FORCE_INLINE uint16_t readUint16AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint16_t value = readUint16(buffer, *pos); *pos += 2; return value; } static AK_FORCE_INLINE uint8_t readUint8andAdvancePosition( static AK_FORCE_INLINE uint8_t readUint8AndAdvancePosition( const uint8_t *const buffer, int *const pos) { return buffer[(*pos)++]; } Loading Loading @@ -113,7 +113,7 @@ class ByteArrayUtils { *pos += 1; return NOT_A_CODE_POINT; } else { return readUint24andAdvancePosition(buffer, pos); return readUint24AndAdvancePosition(buffer, pos); } } else { *pos += 1; Loading native/jni/src/suggest/policyimpl/dictionary/binary_format.h +0 −42 Original line number Diff line number Diff line Loading @@ -56,7 +56,6 @@ class BinaryFormat { // Mask and flags for attribute address type selection. static const int MASK_ATTRIBUTE_ADDRESS_TYPE = 0x30; static bool hasBlacklistedOrNotAWordFlag(const int flags); static int getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos); static uint8_t getFlagsAndForwardPointer(const uint8_t *const dict, int *pos); static int getCodePointAndForwardPointer(const uint8_t *const dict, int *pos); Loading @@ -74,10 +73,6 @@ class BinaryFormat { static int getCodePointsAndProbabilityAndReturnCodePointCount( const uint8_t *const root, const int nodePos, const int maxCodePointCount, int *const outCodePoints, int *const outUnigramProbability); static int getBigramListPositionForWordPosition(const uint8_t *const root, const int nodePosition); static int getShortcutListPositionForWordPosition(const uint8_t *const root, const int nodePosition); private: DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryFormat); Loading @@ -99,10 +94,6 @@ class BinaryFormat { static int skipBigrams(const uint8_t *const dict, const uint8_t flags, const int pos); }; inline bool BinaryFormat::hasBlacklistedOrNotAWordFlag(const int flags) { return (flags & (FLAG_IS_BLACKLISTED | FLAG_IS_NOT_A_WORD)) != 0; } AK_FORCE_INLINE int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { const int msb = dict[(*pos)++]; Loading Loading @@ -475,38 +466,5 @@ AK_FORCE_INLINE int BinaryFormat::getCodePointsAndProbabilityAndReturnCodePointC return 0; } AK_FORCE_INLINE int BinaryFormat::getBigramListPositionForWordPosition( const uint8_t *const root, const int nodePosition) { if (NOT_A_VALID_WORD_POS == nodePosition) return NOT_A_DICT_POS; int position = nodePosition; const uint8_t flags = getFlagsAndForwardPointer(root, &position); if (!(flags & FLAG_HAS_BIGRAMS)) return NOT_A_DICT_POS; if (flags & FLAG_HAS_MULTIPLE_CHARS) { position = skipOtherCharacters(root, position); } else { getCodePointAndForwardPointer(root, &position); } position = skipProbability(flags, position); position = skipChildrenPosition(flags, position); position = skipShortcuts(root, flags, position); return position; } AK_FORCE_INLINE int BinaryFormat::getShortcutListPositionForWordPosition( const uint8_t *const root, const int nodePosition) { if (NOT_A_VALID_WORD_POS == nodePosition) return NOT_A_DICT_POS; int position = nodePosition; const uint8_t flags = getFlagsAndForwardPointer(root, &position); if (!(flags & FLAG_HAS_SHORTCUT_TARGETS)) return NOT_A_DICT_POS; if (flags & FLAG_HAS_MULTIPLE_CHARS) { position = skipOtherCharacters(root, position); } else { getCodePointAndForwardPointer(root, &position); } position = skipProbability(flags, position); position = skipChildrenPosition(flags, position); return position; } } // namespace latinime #endif // LATINIME_BINARY_FORMAT_H Loading
native/jni/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ LATIN_IME_CORE_SRC_FILES := \ suggest/core/session/dic_traverse_session.cpp \ $(addprefix suggest/policyimpl/dictionary/, \ dynamic_patricia_trie_policy.cpp \ patricia_trie_policy.cpp) \ patricia_trie_policy.cpp \ patricia_trie_reading_utils.cpp) \ suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \ $(addprefix suggest/policyimpl/typing/, \ scoring_params.cpp \ Loading
native/jni/src/suggest/core/dictionary/binary_dictionary_terminal_attributes_reading_utils.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -44,15 +44,15 @@ const int TaUtils::WHITELIST_SHORTCUT_PROBABILITY = 15; const int origin = *pos; switch (MASK_ATTRIBUTE_ADDRESS_TYPE & flags) { case FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE: offset = ByteArrayUtils::readUint8andAdvancePosition( offset = ByteArrayUtils::readUint8AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; case FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES: offset = ByteArrayUtils::readUint16andAdvancePosition( offset = ByteArrayUtils::readUint16AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; case FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES: offset = ByteArrayUtils::readUint24andAdvancePosition( offset = ByteArrayUtils::readUint24AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); break; } Loading
native/jni/src/suggest/core/dictionary/binary_dictionary_terminal_attributes_reading_utils.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ class BinaryDictionaryTerminalAttributesReadingUtils { static AK_FORCE_INLINE TerminalAttributeFlags getFlagsAndForwardPointer( const BinaryDictionaryInfo *const binaryDictionaryInfo, int *const pos) { return ByteArrayUtils::readUint8andAdvancePosition( return ByteArrayUtils::readUint8AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos); } Loading Loading @@ -66,7 +66,7 @@ class BinaryDictionaryTerminalAttributesReadingUtils { static AK_FORCE_INLINE int getShortcutListSizeAndForwardPointer( const BinaryDictionaryInfo *const binaryDictionaryInfo, int *const pos) { // readUint16andAdvancePosition() returns an offset *including* the uint16 field itself. return ByteArrayUtils::readUint16andAdvancePosition( return ByteArrayUtils::readUint16AndAdvancePosition( binaryDictionaryInfo->getDictRoot(), pos) - SHORTCUT_LIST_SIZE_FIELD_SIZE; } Loading
native/jni/src/suggest/core/dictionary/byte_array_utils.h +8 −8 Original line number Diff line number Diff line Loading @@ -50,39 +50,39 @@ class ByteArrayUtils { return buffer[pos]; } static AK_FORCE_INLINE uint32_t readUint32andAdvancePosition( static AK_FORCE_INLINE uint32_t readUint32AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint32_t value = readUint32(buffer, *pos); *pos += 4; return value; } static AK_FORCE_INLINE int readSint24andAdvancePosition( 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); return readUint24AndAdvancePosition(buffer, pos); } else { (*pos)++; return -(((value & 0x7F) << 16) ^ readUint16andAdvancePosition(buffer, pos)); return -(((value & 0x7F) << 16) ^ readUint16AndAdvancePosition(buffer, pos)); } } static AK_FORCE_INLINE uint32_t readUint24andAdvancePosition( static AK_FORCE_INLINE uint32_t readUint24AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint32_t value = readUint24(buffer, *pos); *pos += 3; return value; } static AK_FORCE_INLINE uint16_t readUint16andAdvancePosition( static AK_FORCE_INLINE uint16_t readUint16AndAdvancePosition( const uint8_t *const buffer, int *const pos) { const uint16_t value = readUint16(buffer, *pos); *pos += 2; return value; } static AK_FORCE_INLINE uint8_t readUint8andAdvancePosition( static AK_FORCE_INLINE uint8_t readUint8AndAdvancePosition( const uint8_t *const buffer, int *const pos) { return buffer[(*pos)++]; } Loading Loading @@ -113,7 +113,7 @@ class ByteArrayUtils { *pos += 1; return NOT_A_CODE_POINT; } else { return readUint24andAdvancePosition(buffer, pos); return readUint24AndAdvancePosition(buffer, pos); } } else { *pos += 1; Loading
native/jni/src/suggest/policyimpl/dictionary/binary_format.h +0 −42 Original line number Diff line number Diff line Loading @@ -56,7 +56,6 @@ class BinaryFormat { // Mask and flags for attribute address type selection. static const int MASK_ATTRIBUTE_ADDRESS_TYPE = 0x30; static bool hasBlacklistedOrNotAWordFlag(const int flags); static int getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos); static uint8_t getFlagsAndForwardPointer(const uint8_t *const dict, int *pos); static int getCodePointAndForwardPointer(const uint8_t *const dict, int *pos); Loading @@ -74,10 +73,6 @@ class BinaryFormat { static int getCodePointsAndProbabilityAndReturnCodePointCount( const uint8_t *const root, const int nodePos, const int maxCodePointCount, int *const outCodePoints, int *const outUnigramProbability); static int getBigramListPositionForWordPosition(const uint8_t *const root, const int nodePosition); static int getShortcutListPositionForWordPosition(const uint8_t *const root, const int nodePosition); private: DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryFormat); Loading @@ -99,10 +94,6 @@ class BinaryFormat { static int skipBigrams(const uint8_t *const dict, const uint8_t flags, const int pos); }; inline bool BinaryFormat::hasBlacklistedOrNotAWordFlag(const int flags) { return (flags & (FLAG_IS_BLACKLISTED | FLAG_IS_NOT_A_WORD)) != 0; } AK_FORCE_INLINE int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { const int msb = dict[(*pos)++]; Loading Loading @@ -475,38 +466,5 @@ AK_FORCE_INLINE int BinaryFormat::getCodePointsAndProbabilityAndReturnCodePointC return 0; } AK_FORCE_INLINE int BinaryFormat::getBigramListPositionForWordPosition( const uint8_t *const root, const int nodePosition) { if (NOT_A_VALID_WORD_POS == nodePosition) return NOT_A_DICT_POS; int position = nodePosition; const uint8_t flags = getFlagsAndForwardPointer(root, &position); if (!(flags & FLAG_HAS_BIGRAMS)) return NOT_A_DICT_POS; if (flags & FLAG_HAS_MULTIPLE_CHARS) { position = skipOtherCharacters(root, position); } else { getCodePointAndForwardPointer(root, &position); } position = skipProbability(flags, position); position = skipChildrenPosition(flags, position); position = skipShortcuts(root, flags, position); return position; } AK_FORCE_INLINE int BinaryFormat::getShortcutListPositionForWordPosition( const uint8_t *const root, const int nodePosition) { if (NOT_A_VALID_WORD_POS == nodePosition) return NOT_A_DICT_POS; int position = nodePosition; const uint8_t flags = getFlagsAndForwardPointer(root, &position); if (!(flags & FLAG_HAS_SHORTCUT_TARGETS)) return NOT_A_DICT_POS; if (flags & FLAG_HAS_MULTIPLE_CHARS) { position = skipOtherCharacters(root, position); } else { getCodePointAndForwardPointer(root, &position); } position = skipProbability(flags, position); position = skipChildrenPosition(flags, position); return position; } } // namespace latinime #endif // LATINIME_BINARY_FORMAT_H