Loading native/jni/Android.mk +3 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ LATIN_IME_SRC_FULLPATH_DIR := $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR) LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) $(LATIN_IME_SRC_FULLPATH_DIR)/gesture LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wno-system-headers LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \ -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls \ -Winline -Wno-system-headers # To suppress compiler warnings for unused variables/functions used for debug features etc. LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function Loading native/jni/src/additional_proximity_chars.h +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class AdditionalProximityChars { static const int EN_US_ADDITIONAL_U_SIZE = 4; static const int32_t EN_US_ADDITIONAL_U[]; static bool isEnLocale(const char *localeStr) { AK_FORCE_INLINE static bool isEnLocale(const char *localeStr) { const size_t LOCALE_EN_US_SIZE = strlen(LOCALE_EN_US); return localeStr && strlen(localeStr) >= LOCALE_EN_US_SIZE && strncmp(localeStr, LOCALE_EN_US, LOCALE_EN_US_SIZE) == 0; Loading native/jni/src/binary_format.h +17 −15 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ class BinaryFormat { static int skipAllAttributes(const uint8_t *const dict, const uint8_t flags, const int pos); }; inline int BinaryFormat::detectFormat(const uint8_t *const dict) { AK_FORCE_INLINE int BinaryFormat::detectFormat(const uint8_t *const dict) { // The magic number is stored big-endian. const uint32_t magicNumber = (dict[0] << 24) + (dict[1] << 16) + (dict[2] << 8) + dict[3]; switch (magicNumber) { Loading Loading @@ -166,7 +166,8 @@ inline unsigned int BinaryFormat::getHeaderSize(const uint8_t *const dict) { } } inline int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { AK_FORCE_INLINE int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { const int msb = dict[(*pos)++]; if (msb < 0x80) return msb; return ((msb & 0x7F) << 8) | dict[(*pos)++]; Loading @@ -176,7 +177,8 @@ inline uint8_t BinaryFormat::getFlagsAndForwardPointer(const uint8_t *const dict return dict[(*pos)++]; } inline int BinaryFormat::getCodePointAndForwardPointer(const uint8_t *const dict, int *pos) { AK_FORCE_INLINE int BinaryFormat::getCodePointAndForwardPointer(const uint8_t *const dict, int *pos) { const int origin = *pos; const int codePoint = dict[origin]; if (codePoint < MINIMAL_ONE_BYTE_CHARACTER_VALUE) { Loading @@ -200,7 +202,7 @@ inline int BinaryFormat::readFrequencyWithoutMovingPointer(const uint8_t *const return dict[pos]; } inline int BinaryFormat::skipOtherCharacters(const uint8_t *const dict, const int pos) { AK_FORCE_INLINE int BinaryFormat::skipOtherCharacters(const uint8_t *const dict, const int pos) { int currentPos = pos; int character = dict[currentPos++]; while (CHARACTER_ARRAY_TERMINATOR != character) { Loading @@ -226,7 +228,7 @@ static inline int attributeAddressSize(const uint8_t flags) { */ } static inline int skipExistingBigrams(const uint8_t *const dict, const int pos) { static AK_FORCE_INLINE int skipExistingBigrams(const uint8_t *const dict, const int pos) { int currentPos = pos; uint8_t flags = BinaryFormat::getFlagsAndForwardPointer(dict, ¤tPos); while (flags & BinaryFormat::FLAG_ATTRIBUTE_HAS_NEXT) { Loading Loading @@ -255,7 +257,7 @@ inline int BinaryFormat::skipFrequency(const uint8_t flags, const int pos) { return FLAG_IS_TERMINAL & flags ? pos + 1 : pos; } inline int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t flags, const int pos) { if (FLAG_HAS_SHORTCUT_TARGETS & flags) { return pos + shortcutByteSize(dict, pos); Loading @@ -264,7 +266,7 @@ inline int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t } } inline int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t flags, const int pos) { if (FLAG_HAS_BIGRAMS & flags) { return skipExistingBigrams(dict, pos); Loading @@ -273,7 +275,7 @@ inline int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t fl } } inline int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint8_t flags, const int pos) { // This function skips all attributes: shortcuts and bigrams. int newPos = pos; Loading @@ -282,7 +284,7 @@ inline int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint return newPos; } inline int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, AK_FORCE_INLINE int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, const uint8_t flags, const int pos) { int currentPos = pos; currentPos = skipChildrenPosition(flags, currentPos); Loading @@ -290,8 +292,8 @@ inline int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, return currentPos; } inline int BinaryFormat::readChildrenPosition(const uint8_t *const dict, const uint8_t flags, const int pos) { AK_FORCE_INLINE int BinaryFormat::readChildrenPosition(const uint8_t *const dict, const uint8_t flags, const int pos) { int offset = 0; switch (MASK_GROUP_ADDRESS_TYPE & flags) { case FLAG_GROUP_ADDRESS_TYPE_ONEBYTE: Loading @@ -318,7 +320,7 @@ inline bool BinaryFormat::hasChildrenInFlags(const uint8_t flags) { return (FLAG_GROUP_ADDRESS_TYPE_NOADDRESS != (MASK_GROUP_ADDRESS_TYPE & flags)); } inline int BinaryFormat::getAttributeAddressAndForwardPointer(const uint8_t *const dict, AK_FORCE_INLINE int BinaryFormat::getAttributeAddressAndForwardPointer(const uint8_t *const dict, const uint8_t flags, int *pos) { int offset = 0; const int origin = *pos; Loading Loading @@ -352,8 +354,8 @@ inline int BinaryFormat::getAttributeFrequencyFromFlags(const int flags) { // 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, const int *const inWord, const int length, const bool forceLowerCaseSearch) { AK_FORCE_INLINE int BinaryFormat::getTerminalPosition(const uint8_t *const root, const int *const inWord, const int length, const bool forceLowerCaseSearch) { int pos = 0; int wordPos = 0; Loading Loading @@ -438,7 +440,7 @@ inline int BinaryFormat::getTerminalPosition(const uint8_t *const root, const in * outUnigramFrequency: a pointer to an int to write the frequency into. * Return value : the length of the word, of 0 if the word was not found. */ inline int BinaryFormat::getWordAtAddress(const uint8_t *const root, const int address, AK_FORCE_INLINE int BinaryFormat::getWordAtAddress(const uint8_t *const root, const int address, const int maxDepth, int *outWord, int *outUnigramFrequency) { int pos = 0; int wordPos = 0; Loading native/jni/src/correction.h +2 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ class Correction { // No need to initialize it explicitly here. } virtual ~Correction() {} // Non virtual inline destructor -- never inherit this class ~Correction() {} void resetCorrection(); void initCorrection( const ProximityInfo *pi, const int inputSize, const int maxWordLength); Loading native/jni/src/geometry_utils.h +5 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ #include <cmath> #include "defines.h" #define DEBUG_DECODER false #define M_PI_F 3.14159265f Loading @@ -44,19 +46,19 @@ static inline float getDistanceFloat(const float x1, const float y1, const float return hypotf(x1 - x2, y1 - y2); } static inline int getDistanceInt(const int x1, const int y1, const int x2, const int y2) { static AK_FORCE_INLINE int getDistanceInt(const int x1, const int y1, const int x2, const int y2) { return static_cast<int>(getDistanceFloat(static_cast<float>(x1), static_cast<float>(y1), static_cast<float>(x2), static_cast<float>(y2))); } static inline float getAngle(const int x1, const int y1, const int x2, const int y2) { static AK_FORCE_INLINE float getAngle(const int x1, const int y1, const int x2, const int y2) { const int dx = x1 - x2; const int dy = y1 - y2; if (dx == 0 && dy == 0) return 0; return atan2f(static_cast<float>(dy), static_cast<float>(dx)); } static inline float getAngleDiff(const float a1, const float a2) { static AK_FORCE_INLINE float getAngleDiff(const float a1, const float a2) { const float deltaA = fabsf(a1 - a2); const float diff = ROUND_FLOAT_10000(deltaA); if (diff > M_PI_F) { Loading Loading
native/jni/Android.mk +3 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ LATIN_IME_SRC_FULLPATH_DIR := $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR) LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) $(LATIN_IME_SRC_FULLPATH_DIR)/gesture LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wno-system-headers LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \ -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls \ -Winline -Wno-system-headers # To suppress compiler warnings for unused variables/functions used for debug features etc. LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function Loading
native/jni/src/additional_proximity_chars.h +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class AdditionalProximityChars { static const int EN_US_ADDITIONAL_U_SIZE = 4; static const int32_t EN_US_ADDITIONAL_U[]; static bool isEnLocale(const char *localeStr) { AK_FORCE_INLINE static bool isEnLocale(const char *localeStr) { const size_t LOCALE_EN_US_SIZE = strlen(LOCALE_EN_US); return localeStr && strlen(localeStr) >= LOCALE_EN_US_SIZE && strncmp(localeStr, LOCALE_EN_US, LOCALE_EN_US_SIZE) == 0; Loading
native/jni/src/binary_format.h +17 −15 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ class BinaryFormat { static int skipAllAttributes(const uint8_t *const dict, const uint8_t flags, const int pos); }; inline int BinaryFormat::detectFormat(const uint8_t *const dict) { AK_FORCE_INLINE int BinaryFormat::detectFormat(const uint8_t *const dict) { // The magic number is stored big-endian. const uint32_t magicNumber = (dict[0] << 24) + (dict[1] << 16) + (dict[2] << 8) + dict[3]; switch (magicNumber) { Loading Loading @@ -166,7 +166,8 @@ inline unsigned int BinaryFormat::getHeaderSize(const uint8_t *const dict) { } } inline int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { AK_FORCE_INLINE int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos) { const int msb = dict[(*pos)++]; if (msb < 0x80) return msb; return ((msb & 0x7F) << 8) | dict[(*pos)++]; Loading @@ -176,7 +177,8 @@ inline uint8_t BinaryFormat::getFlagsAndForwardPointer(const uint8_t *const dict return dict[(*pos)++]; } inline int BinaryFormat::getCodePointAndForwardPointer(const uint8_t *const dict, int *pos) { AK_FORCE_INLINE int BinaryFormat::getCodePointAndForwardPointer(const uint8_t *const dict, int *pos) { const int origin = *pos; const int codePoint = dict[origin]; if (codePoint < MINIMAL_ONE_BYTE_CHARACTER_VALUE) { Loading @@ -200,7 +202,7 @@ inline int BinaryFormat::readFrequencyWithoutMovingPointer(const uint8_t *const return dict[pos]; } inline int BinaryFormat::skipOtherCharacters(const uint8_t *const dict, const int pos) { AK_FORCE_INLINE int BinaryFormat::skipOtherCharacters(const uint8_t *const dict, const int pos) { int currentPos = pos; int character = dict[currentPos++]; while (CHARACTER_ARRAY_TERMINATOR != character) { Loading @@ -226,7 +228,7 @@ static inline int attributeAddressSize(const uint8_t flags) { */ } static inline int skipExistingBigrams(const uint8_t *const dict, const int pos) { static AK_FORCE_INLINE int skipExistingBigrams(const uint8_t *const dict, const int pos) { int currentPos = pos; uint8_t flags = BinaryFormat::getFlagsAndForwardPointer(dict, ¤tPos); while (flags & BinaryFormat::FLAG_ATTRIBUTE_HAS_NEXT) { Loading Loading @@ -255,7 +257,7 @@ inline int BinaryFormat::skipFrequency(const uint8_t flags, const int pos) { return FLAG_IS_TERMINAL & flags ? pos + 1 : pos; } inline int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t flags, const int pos) { if (FLAG_HAS_SHORTCUT_TARGETS & flags) { return pos + shortcutByteSize(dict, pos); Loading @@ -264,7 +266,7 @@ inline int BinaryFormat::skipShortcuts(const uint8_t *const dict, const uint8_t } } inline int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t flags, const int pos) { if (FLAG_HAS_BIGRAMS & flags) { return skipExistingBigrams(dict, pos); Loading @@ -273,7 +275,7 @@ inline int BinaryFormat::skipBigrams(const uint8_t *const dict, const uint8_t fl } } inline int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint8_t flags, AK_FORCE_INLINE int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint8_t flags, const int pos) { // This function skips all attributes: shortcuts and bigrams. int newPos = pos; Loading @@ -282,7 +284,7 @@ inline int BinaryFormat::skipAllAttributes(const uint8_t *const dict, const uint return newPos; } inline int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, AK_FORCE_INLINE int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, const uint8_t flags, const int pos) { int currentPos = pos; currentPos = skipChildrenPosition(flags, currentPos); Loading @@ -290,8 +292,8 @@ inline int BinaryFormat::skipChildrenPosAndAttributes(const uint8_t *const dict, return currentPos; } inline int BinaryFormat::readChildrenPosition(const uint8_t *const dict, const uint8_t flags, const int pos) { AK_FORCE_INLINE int BinaryFormat::readChildrenPosition(const uint8_t *const dict, const uint8_t flags, const int pos) { int offset = 0; switch (MASK_GROUP_ADDRESS_TYPE & flags) { case FLAG_GROUP_ADDRESS_TYPE_ONEBYTE: Loading @@ -318,7 +320,7 @@ inline bool BinaryFormat::hasChildrenInFlags(const uint8_t flags) { return (FLAG_GROUP_ADDRESS_TYPE_NOADDRESS != (MASK_GROUP_ADDRESS_TYPE & flags)); } inline int BinaryFormat::getAttributeAddressAndForwardPointer(const uint8_t *const dict, AK_FORCE_INLINE int BinaryFormat::getAttributeAddressAndForwardPointer(const uint8_t *const dict, const uint8_t flags, int *pos) { int offset = 0; const int origin = *pos; Loading Loading @@ -352,8 +354,8 @@ inline int BinaryFormat::getAttributeFrequencyFromFlags(const int flags) { // 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, const int *const inWord, const int length, const bool forceLowerCaseSearch) { AK_FORCE_INLINE int BinaryFormat::getTerminalPosition(const uint8_t *const root, const int *const inWord, const int length, const bool forceLowerCaseSearch) { int pos = 0; int wordPos = 0; Loading Loading @@ -438,7 +440,7 @@ inline int BinaryFormat::getTerminalPosition(const uint8_t *const root, const in * outUnigramFrequency: a pointer to an int to write the frequency into. * Return value : the length of the word, of 0 if the word was not found. */ inline int BinaryFormat::getWordAtAddress(const uint8_t *const root, const int address, AK_FORCE_INLINE int BinaryFormat::getWordAtAddress(const uint8_t *const root, const int address, const int maxDepth, int *outWord, int *outUnigramFrequency) { int pos = 0; int wordPos = 0; Loading
native/jni/src/correction.h +2 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ class Correction { // No need to initialize it explicitly here. } virtual ~Correction() {} // Non virtual inline destructor -- never inherit this class ~Correction() {} void resetCorrection(); void initCorrection( const ProximityInfo *pi, const int inputSize, const int maxWordLength); Loading
native/jni/src/geometry_utils.h +5 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ #include <cmath> #include "defines.h" #define DEBUG_DECODER false #define M_PI_F 3.14159265f Loading @@ -44,19 +46,19 @@ static inline float getDistanceFloat(const float x1, const float y1, const float return hypotf(x1 - x2, y1 - y2); } static inline int getDistanceInt(const int x1, const int y1, const int x2, const int y2) { static AK_FORCE_INLINE int getDistanceInt(const int x1, const int y1, const int x2, const int y2) { return static_cast<int>(getDistanceFloat(static_cast<float>(x1), static_cast<float>(y1), static_cast<float>(x2), static_cast<float>(y2))); } static inline float getAngle(const int x1, const int y1, const int x2, const int y2) { static AK_FORCE_INLINE float getAngle(const int x1, const int y1, const int x2, const int y2) { const int dx = x1 - x2; const int dy = y1 - y2; if (dx == 0 && dy == 0) return 0; return atan2f(static_cast<float>(dy), static_cast<float>(dx)); } static inline float getAngleDiff(const float a1, const float a2) { static AK_FORCE_INLINE float getAngleDiff(const float a1, const float a2) { const float deltaA = fabsf(a1 - a2); const float diff = ROUND_FLOAT_10000(deltaA); if (diff > M_PI_F) { Loading