diff options
Diffstat (limited to 'native/jni/src')
-rw-r--r-- | native/jni/src/bigram_dictionary.cpp | 3 | ||||
-rw-r--r-- | native/jni/src/binary_format.h | 2 | ||||
-rw-r--r-- | native/jni/src/correction.cpp | 8 | ||||
-rw-r--r-- | native/jni/src/correction.h | 6 | ||||
-rw-r--r-- | native/jni/src/defines.h | 2 | ||||
-rw-r--r-- | native/jni/src/dic_traverse_wrapper.h | 8 | ||||
-rw-r--r-- | native/jni/src/dictionary.h | 16 | ||||
-rw-r--r-- | native/jni/src/proximity_info.cpp | 4 | ||||
-rw-r--r-- | native/jni/src/proximity_info.h | 67 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state.cpp | 2 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state.h | 4 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state_utils.cpp | 2 | ||||
-rw-r--r-- | native/jni/src/proximity_info_utils.h | 39 | ||||
-rw-r--r-- | native/jni/src/suggest_utils.h | 1 | ||||
-rw-r--r-- | native/jni/src/words_priority_queue.h | 8 | ||||
-rw-r--r-- | native/jni/src/words_priority_queue_pool.h | 6 |
16 files changed, 58 insertions, 120 deletions
diff --git a/native/jni/src/bigram_dictionary.cpp b/native/jni/src/bigram_dictionary.cpp index 44dc75e9c..ef0434c49 100644 --- a/native/jni/src/bigram_dictionary.cpp +++ b/native/jni/src/bigram_dictionary.cpp @@ -21,6 +21,7 @@ #include "bigram_dictionary.h" #include "binary_format.h" #include "bloom_filter.h" +#include "char_utils.h" #include "defines.h" #include "dictionary.h" @@ -50,7 +51,7 @@ void BigramDictionary::addWordBigram(int *word, int length, int frequency, int * int insertAt = 0; while (insertAt < MAX_RESULTS) { if (frequency > bigramFreq[insertAt] || (bigramFreq[insertAt] == frequency - && length < Dictionary::wideStrLen( + && length < getCodePointCount(MAX_WORD_LENGTH, bigramCodePoints + insertAt * MAX_WORD_LENGTH))) { break; } diff --git a/native/jni/src/binary_format.h b/native/jni/src/binary_format.h index 61780dea5..f19d5e3ea 100644 --- a/native/jni/src/binary_format.h +++ b/native/jni/src/binary_format.h @@ -314,7 +314,7 @@ static inline int childrenAddressSize(const uint8_t flags) { } static AK_FORCE_INLINE int shortcutByteSize(const uint8_t *const dict, const int pos) { - return ((int)(dict[pos] << 8)) + (dict[pos + 1]); + return (static_cast<int>(dict[pos] << 8)) + (dict[pos + 1]); } inline int BinaryFormat::skipChildrenPosition(const uint8_t flags, const int pos) { diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp index e892c8591..d4bd4aa00 100644 --- a/native/jni/src/correction.cpp +++ b/native/jni/src/correction.cpp @@ -112,7 +112,7 @@ void Correction::setCorrectionParams(const int skipPos, const int excessivePos, mMaxErrors = maxErrors; } -void Correction::checkState() { +void Correction::checkState() const { if (DEBUG_DICT) { int inputCount = 0; if (mSkipPos >= 0) ++inputCount; @@ -121,12 +121,12 @@ void Correction::checkState() { } } -bool Correction::sameAsTyped() { +bool Correction::sameAsTyped() const { return mProximityInfoState.sameAsTyped(mWord, mOutputIndex); } int Correction::getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray, - const int wordCount, const bool isSpaceProximity, const int *word) { + const int wordCount, const bool isSpaceProximity, const int *word) const { return Correction::RankingAlgorithm::calcFreqForSplitMultipleWords(freqArray, wordLengthArray, wordCount, this, isSpaceProximity, word); } @@ -677,7 +677,7 @@ inline static bool isUpperCase(unsigned short c) { const float factor = SuggestUtils::getDistanceScalingFactor(static_cast<float>(squaredDistance)); if (factor > 0.0f) { - multiplyRate((int)(factor * 100.0f), &finalFreq); + multiplyRate(static_cast<int>(factor * 100.0f), &finalFreq); } else if (squaredDistance == PROXIMITY_CHAR_WITHOUT_DISTANCE_INFO) { multiplyRate(WORDS_WITH_PROXIMITY_CHARACTER_DEMOTION_RATE, &finalFreq); } diff --git a/native/jni/src/correction.h b/native/jni/src/correction.h index 89e300d75..0873daef3 100644 --- a/native/jni/src/correction.h +++ b/native/jni/src/correction.h @@ -64,8 +64,8 @@ class Correction { void setCorrectionParams(const int skipPos, const int excessivePos, const int transposedPos, const int spaceProximityPos, const int missingSpacePos, const bool useFullEditDistance, const bool doAutoCompletion, const int maxErrors); - void checkState(); - bool sameAsTyped(); + void checkState() const; + bool sameAsTyped() const; bool initProcessState(const int index); int getInputIndex() const; @@ -77,7 +77,7 @@ class Correction { } int getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray, - const int wordCount, const bool isSpaceProximity, const int *word); + const int wordCount, const bool isSpaceProximity, const int *word) const; int getFinalProbability(const int probability, int **word, int *wordLength); int getFinalProbabilityForSubQueue(const int probability, int **word, int *wordLength, const int inputSize); diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h index 922a746b8..9883168fe 100644 --- a/native/jni/src/defines.h +++ b/native/jni/src/defines.h @@ -370,7 +370,7 @@ static inline void prof_out(void) { // TODO: Remove #define MAX_POINTER_COUNT 1 -#define MAX_POINTER_COUNT_FOR_G 2 +#define MAX_POINTER_COUNT_G 2 // Size, in bytes, of the bloom filter index for bigrams // 128 gives us 1024 buckets. The probability of false positive is (1 - e ** (-kn/m))**k, diff --git a/native/jni/src/dic_traverse_wrapper.h b/native/jni/src/dic_traverse_wrapper.h index 9a1db3852..1108a45c8 100644 --- a/native/jni/src/dic_traverse_wrapper.h +++ b/native/jni/src/dic_traverse_wrapper.h @@ -31,8 +31,8 @@ class DicTraverseWrapper { } return 0; } - static void initDicTraverseSession(void *traverseSession, - const Dictionary *const dictionary, const int *prevWord, const int prevWordLength) { + static void initDicTraverseSession(void *traverseSession, const Dictionary *const dictionary, + const int *prevWord, const int prevWordLength) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(traverseSession, dictionary, prevWord, prevWordLength); } @@ -42,8 +42,7 @@ class DicTraverseWrapper { sDicTraverseSessionReleaseMethod(traverseSession); } } - static void setTraverseSessionFactoryMethod( - void *(*factoryMethod)(JNIEnv *, jstring)) { + static void setTraverseSessionFactoryMethod(void *(*factoryMethod)(JNIEnv *, jstring)) { sDicTraverseSessionFactoryMethod = factoryMethod; } static void setTraverseSessionInitMethod( @@ -53,6 +52,7 @@ class DicTraverseWrapper { static void setTraverseSessionReleaseMethod(void (*releaseMethod)(void *)) { sDicTraverseSessionReleaseMethod = releaseMethod; } + private: DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring); diff --git a/native/jni/src/dictionary.h b/native/jni/src/dictionary.h index 121cf058d..83676b204 100644 --- a/native/jni/src/dictionary.h +++ b/native/jni/src/dictionary.h @@ -65,10 +65,6 @@ class Dictionary { int getDictBufAdjust() const { return mDictBufAdjust; } virtual ~Dictionary(); - // public static utility methods - // static inline methods should be defined in the header file - static int wideStrLen(int *str); - private: DISALLOW_IMPLICIT_CONSTRUCTORS(Dictionary); const uint8_t *mDict; @@ -84,17 +80,5 @@ class Dictionary { const BigramDictionary *mBigramDictionary; SuggestInterface *mGestureSuggest; }; - -// public static utility methods -// static inline methods should be defined in the header file -inline int Dictionary::wideStrLen(int *str) { - if (!str) return 0; - int length = 0; - while (*str) { - str++; - length++; - } - return length; -} } // namespace latinime #endif // LATINIME_DICTIONARY_H diff --git a/native/jni/src/proximity_info.cpp b/native/jni/src/proximity_info.cpp index 8157fe2d0..a0bad1af4 100644 --- a/native/jni/src/proximity_info.cpp +++ b/native/jni/src/proximity_info.cpp @@ -110,8 +110,8 @@ bool ProximityInfo::hasSpaceProximity(const int x, const int y) const { return false; } - const int startIndex = ProximityInfoUtils::getStartIndexFromCoordinates( - MAX_PROXIMITY_CHARS_SIZE, x, y, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH); + const int startIndex = ProximityInfoUtils::getStartIndexFromCoordinates(x, y, + CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH); if (DEBUG_PROXIMITY_INFO) { AKLOGI("hasSpaceProximity: index %d, %d, %d", startIndex, x, y); } diff --git a/native/jni/src/proximity_info.h b/native/jni/src/proximity_info.h index 6d571d7bb..f3a68e4f2 100644 --- a/native/jni/src/proximity_info.h +++ b/native/jni/src/proximity_info.h @@ -47,57 +47,21 @@ class ProximityInfo { // the radius of the key is assigned to zero. return mSweetSpotRadii[keyIndex] > 0.0f; } - float getSweetSpotRadiiAt(int keyIndex) const { - return mSweetSpotRadii[keyIndex]; - } - float getSweetSpotCenterXAt(int keyIndex) const { - return mSweetSpotCenterXs[keyIndex]; - } - float getSweetSpotCenterYAt(int keyIndex) const { - return mSweetSpotCenterYs[keyIndex]; - } + float getSweetSpotRadiiAt(int keyIndex) const { return mSweetSpotRadii[keyIndex]; } + float getSweetSpotCenterXAt(int keyIndex) const { return mSweetSpotCenterXs[keyIndex]; } + float getSweetSpotCenterYAt(int keyIndex) const { return mSweetSpotCenterYs[keyIndex]; } void calculateNearbyKeyCodes( const int x, const int y, const int primaryKey, int *inputCodes) const; - - bool hasTouchPositionCorrectionData() const { - return HAS_TOUCH_POSITION_CORRECTION_DATA; - } - - int getMostCommonKeyWidth() const { - return MOST_COMMON_KEY_WIDTH; - } - - int getMostCommonKeyWidthSquare() const { - return MOST_COMMON_KEY_WIDTH_SQUARE; - } - - int getKeyCount() const { - return KEY_COUNT; - } - - int getCellHeight() const { - return CELL_HEIGHT; - } - - int getCellWidth() const { - return CELL_WIDTH; - } - - int getGridWidth() const { - return GRID_WIDTH; - } - - int getGridHeight() const { - return GRID_HEIGHT; - } - - int getKeyboardWidth() const { - return KEYBOARD_WIDTH; - } - - int getKeyboardHeight() const { - return KEYBOARD_HEIGHT; - } + bool hasTouchPositionCorrectionData() const { return HAS_TOUCH_POSITION_CORRECTION_DATA; } + int getMostCommonKeyWidth() const { return MOST_COMMON_KEY_WIDTH; } + int getMostCommonKeyWidthSquare() const { return MOST_COMMON_KEY_WIDTH_SQUARE; } + int getKeyCount() const { return KEY_COUNT; } + int getCellHeight() const { return CELL_HEIGHT; } + int getCellWidth() const { return CELL_WIDTH; } + int getGridWidth() const { return GRID_WIDTH; } + int getGridHeight() const { return GRID_HEIGHT; } + int getKeyboardWidth() const { return KEYBOARD_WIDTH; } + int getKeyboardHeight() const { return KEYBOARD_HEIGHT; } int getKeyCenterXOfCodePointG(int charCode) const; int getKeyCenterYOfCodePointG(int charCode) const; @@ -109,9 +73,8 @@ class ProximityInfo { const int *const inputYCoordinates, const int inputSize, int *allInputCodes) const { ProximityInfoUtils::initializeProximities(inputCodes, inputXCoordinates, inputYCoordinates, inputSize, mKeyXCoordinates, mKeyYCoordinates, mKeyWidths, mKeyHeights, - mProximityCharsArray, MAX_PROXIMITY_CHARS_SIZE, CELL_HEIGHT, CELL_WIDTH, - GRID_WIDTH, MOST_COMMON_KEY_WIDTH, KEY_COUNT, mLocaleStr, &mCodeToKeyMap, - allInputCodes); + mProximityCharsArray, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH, MOST_COMMON_KEY_WIDTH, + KEY_COUNT, mLocaleStr, &mCodeToKeyMap, allInputCodes); } int getKeyIndexOf(const int c) const { diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp index 387b03a24..141be2688 100644 --- a/native/jni/src/proximity_info_state.cpp +++ b/native/jni/src/proximity_info_state.cpp @@ -27,8 +27,6 @@ namespace latinime { -const int ProximityInfoState::NOT_A_CODE = -1; - void ProximityInfoState::initInputParams(const int pointerId, const float maxPointToKeyLength, const ProximityInfo *proximityInfo, const int *const inputCodes, const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, diff --git a/native/jni/src/proximity_info_state.h b/native/jni/src/proximity_info_state.h index 7422cb08f..ff1b35089 100644 --- a/native/jni/src/proximity_info_state.h +++ b/native/jni/src/proximity_info_state.h @@ -32,9 +32,6 @@ class ProximityInfo; class ProximityInfoState { public: - - static const int NOT_A_CODE; - ///////////////////////////////////////// // Defined in proximity_info_state.cpp // ///////////////////////////////////////// @@ -196,6 +193,7 @@ class ProximityInfoState { const int from, const int to, const int keyId, const bool extend) const; bool isKeyInSerchKeysAfterIndex(const int index, const int keyId) const; + private: DISALLOW_COPY_AND_ASSIGN(ProximityInfoState); ///////////////////////////////////////// diff --git a/native/jni/src/proximity_info_state_utils.cpp b/native/jni/src/proximity_info_state_utils.cpp index 9f85743e5..ac74a4e91 100644 --- a/native/jni/src/proximity_info_state_utils.cpp +++ b/native/jni/src/proximity_info_state_utils.cpp @@ -211,7 +211,7 @@ namespace latinime { ProximityInfoParams::NOT_A_DISTANCE_FLOAT; if (squaredDistance >= 0.0f) { normalizedSquaredDistances[i * MAX_PROXIMITY_CHARS_SIZE + j] = - (int) (squaredDistance + static_cast<int>(squaredDistance * ProximityInfoParams::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR); } else { normalizedSquaredDistances[i * MAX_PROXIMITY_CHARS_SIZE + j] = diff --git a/native/jni/src/proximity_info_utils.h b/native/jni/src/proximity_info_utils.h index 24917d879..c50df57f9 100644 --- a/native/jni/src/proximity_info_utils.h +++ b/native/jni/src/proximity_info_utils.h @@ -49,9 +49,9 @@ class ProximityInfoUtils { const int *const inputXCoordinates, const int *const inputYCoordinates, const int inputSize, const int *const keyXCoordinates, const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights, - const int *const proximityCharsArray, const int maxProximityCharsSize, - const int cellHeight, const int cellWidth, const int gridWidth, - const int mostCommonKeyWidth, const int keyCount, const char *const localeStr, + const int *const proximityCharsArray, const int cellHeight, const int cellWidth, + const int gridWidth, const int mostCommonKeyWidth, const int keyCount, + const char *const localeStr, const hash_map_compat<int, int> *const codeToKeyMap, int *inputProximities) { // Initialize // - mInputCodes @@ -63,9 +63,8 @@ class ProximityInfoUtils { const int y = inputYCoordinates[i]; int *proximities = &inputProximities[i * MAX_PROXIMITY_CHARS_SIZE]; calculateProximities(keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, - proximityCharsArray, maxProximityCharsSize, cellHeight, cellWidth, gridWidth, - mostCommonKeyWidth, keyCount, x, y, primaryKey, localeStr, codeToKeyMap, - proximities); + proximityCharsArray, cellHeight, cellWidth, gridWidth, mostCommonKeyWidth, + keyCount, x, y, primaryKey, localeStr, codeToKeyMap, proximities); } if (DEBUG_PROXIMITY_CHARS) { @@ -81,10 +80,9 @@ class ProximityInfoUtils { } } - static AK_FORCE_INLINE int getStartIndexFromCoordinates(const int maxProximityCharsSize, - const int x, const int y, const int cellHeight, const int cellWidth, - const int gridWidth) { - return ((y / cellHeight) * gridWidth + (x / cellWidth)) * maxProximityCharsSize; + static AK_FORCE_INLINE int getStartIndexFromCoordinates(const int x, const int y, + const int cellHeight, const int cellWidth, const int gridWidth) { + return ((y / cellHeight) * gridWidth + (x / cellWidth)) * MAX_PROXIMITY_CHARS_SIZE; } static inline float getSquaredDistanceFloat(const float x1, const float y1, const float x2, @@ -153,21 +151,18 @@ class ProximityInfoUtils { return left < right && top < bottom && x >= left && x < right && y >= top && y < bottom; } - static void calculateProximities( - const int *const keyXCoordinates, const int *const keyYCoordinates, - const int *const keyWidths, const int *keyHeights, - const int *const proximityCharsArray, - const int maxProximityCharsSize, const int cellHeight, const int cellWidth, + static void calculateProximities(const int *const keyXCoordinates, + const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights, + const int *const proximityCharsArray, const int cellHeight, const int cellWidth, const int gridWidth, const int mostCommonKeyWidth, const int keyCount, const int x, const int y, const int primaryKey, const char *const localeStr, const hash_map_compat<int, int> *const codeToKeyMap, int *proximities) { const int mostCommonKeyWidthSquare = mostCommonKeyWidth * mostCommonKeyWidth; int insertPos = 0; proximities[insertPos++] = primaryKey; - const int startIndex = getStartIndexFromCoordinates( - maxProximityCharsSize, x, y, cellHeight, cellWidth, gridWidth); + const int startIndex = getStartIndexFromCoordinates(x, y, cellHeight, cellWidth, gridWidth); if (startIndex >= 0) { - for (int i = 0; i < maxProximityCharsSize; ++i) { + for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) { const int c = proximityCharsArray[startIndex + i]; if (c < KEYCODE_SPACE || c == primaryKey) { continue; @@ -179,7 +174,7 @@ class ProximityInfoUtils { keyWidths, keyHeights, keyIndex, x, y); if (onKey || distance < mostCommonKeyWidthSquare) { proximities[insertPos++] = c; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -191,7 +186,7 @@ class ProximityInfoUtils { AdditionalProximityChars::getAdditionalCharsSize(localeStr, primaryKey); if (additionalProximitySize > 0) { proximities[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -212,7 +207,7 @@ class ProximityInfoUtils { continue; } proximities[insertPos++] = ac; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -222,7 +217,7 @@ class ProximityInfoUtils { } } // Add a delimiter for the proximity characters - for (int i = insertPos; i < maxProximityCharsSize; ++i) { + for (int i = insertPos; i < MAX_PROXIMITY_CHARS_SIZE; ++i) { proximities[i] = NOT_A_CODE_POINT; } } diff --git a/native/jni/src/suggest_utils.h b/native/jni/src/suggest_utils.h index 7d49cde7e..aab9f7ba8 100644 --- a/native/jni/src/suggest_utils.h +++ b/native/jni/src/suggest_utils.h @@ -19,7 +19,6 @@ #include "defines.h" #include "proximity_info_params.h" -#include "proximity_info_state.h" namespace latinime { class SuggestUtils { diff --git a/native/jni/src/words_priority_queue.h b/native/jni/src/words_priority_queue.h index 7aab1e083..8a22f051a 100644 --- a/native/jni/src/words_priority_queue.h +++ b/native/jni/src/words_priority_queue.h @@ -87,7 +87,7 @@ class WordsPriorityQueue { } } - SuggestedWord *top() { + SuggestedWord *top() const { if (mSuggestions.empty()) return 0; SuggestedWord *sw = mSuggestions.top(); return sw; @@ -110,7 +110,7 @@ class WordsPriorityQueue { } } - AK_FORCE_INLINE void dumpTopWord() { + AK_FORCE_INLINE void dumpTopWord() const { if (size() <= 0) { return; } @@ -118,7 +118,7 @@ class WordsPriorityQueue { } AK_FORCE_INLINE float getHighestNormalizedScore(const int *before, const int beforeLength, - int **outWord, int *outScore, int *outLength) { + int **outWord, int *outScore, int *outLength) const { if (!mHighestSuggestedWord) { return 0.0f; } @@ -137,7 +137,7 @@ class WordsPriorityQueue { } }; - SuggestedWord *getFreeSuggestedWord(int score, int *word, int wordLength, int type) { + SuggestedWord *getFreeSuggestedWord(int score, int *word, int wordLength, int type) const { for (int i = 0; i < MAX_WORD_LENGTH; ++i) { if (!mSuggestedWords[i].mUsed) { mSuggestedWords[i].setParams(score, word, wordLength, type); diff --git a/native/jni/src/words_priority_queue_pool.h b/native/jni/src/words_priority_queue_pool.h index cfe7ede63..2cd210a05 100644 --- a/native/jni/src/words_priority_queue_pool.h +++ b/native/jni/src/words_priority_queue_pool.h @@ -44,11 +44,11 @@ class WordsPriorityQueuePool { } } - WordsPriorityQueue *getMasterQueue() { + WordsPriorityQueue *getMasterQueue() const { return mMasterQueue; } - WordsPriorityQueue *getSubQueue(const int wordIndex, const int inputWordLength) { + WordsPriorityQueue *getSubQueue(const int wordIndex, const int inputWordLength) const { if (wordIndex >= MULTIPLE_WORDS_SUGGESTION_MAX_WORDS) { return 0; } @@ -77,7 +77,7 @@ class WordsPriorityQueuePool { } } - void dumpSubQueue1TopSuggestions() { + void dumpSubQueue1TopSuggestions() const { AKLOGI("DUMP SUBQUEUE1 TOP SUGGESTIONS"); for (int i = 0; i < SUB_QUEUE_MAX_COUNT; ++i) { getSubQueue(0, i)->dumpTopWord(); |