diff options
Diffstat (limited to 'native/src/proximity_info.cpp')
-rw-r--r-- | native/src/proximity_info.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp index 2f989e355..6857caf00 100644 --- a/native/src/proximity_info.cpp +++ b/native/src/proximity_info.cpp @@ -49,14 +49,17 @@ ProximityInfo::ProximityInfo(const int maxProximityCharsSize, const int keyboard && sweetSpotCenterYs && sweetSpotRadii), mInputXCoordinates(0), mInputYCoordinates(0), mTouchPositionCorrectionEnabled(false) { - const int len = GRID_WIDTH * GRID_HEIGHT * MAX_PROXIMITY_CHARS_SIZE; - mProximityCharsArray = new uint32_t[len]; - mNormalizedSquaredDistances = new int[len]; + const int proximityGridLength = GRID_WIDTH * GRID_HEIGHT * MAX_PROXIMITY_CHARS_SIZE; + mProximityCharsArray = new uint32_t[proximityGridLength]; if (DEBUG_PROXIMITY_INFO) { - LOGI("Create proximity info array %d", len); + LOGI("Create proximity info array %d", proximityGridLength); } - memcpy(mProximityCharsArray, proximityCharsArray, len * sizeof(mProximityCharsArray[0])); - for (int i = 0; i < len; ++i) { + memcpy(mProximityCharsArray, proximityCharsArray, + proximityGridLength * sizeof(mProximityCharsArray[0])); + const int normalizedSquaredDistancesLength = + MAX_PROXIMITY_CHARS_SIZE * MAX_WORD_LENGTH_INTERNAL; + mNormalizedSquaredDistances = new int[normalizedSquaredDistancesLength]; + for (int i = 0; i < normalizedSquaredDistancesLength; ++i) { mNormalizedSquaredDistances[i] = NOT_A_DISTANCE; } @@ -164,7 +167,7 @@ int ProximityInfo::getKeyIndex(const int c) const { // We do not have the coordinate data return NOT_A_INDEX; } - const unsigned short baseLowerC = Dictionary::toBaseLowerCase(c); + const unsigned short baseLowerC = toBaseLowerCase(c); if (baseLowerC > MAX_CHAR_CODE) { return NOT_A_INDEX; } @@ -229,7 +232,7 @@ ProximityInfo::ProximityType ProximityInfo::getMatchedProximityId(const int inde const unsigned short c, const bool checkProximityChars, int *proximityIndex) const { const int *currentChars = getProximityCharsAt(index); const int firstChar = currentChars[0]; - const unsigned short baseLowerC = Dictionary::toBaseLowerCase(c); + const unsigned short baseLowerC = toBaseLowerCase(c); // The first char in the array is what user typed. If it matches right away, // that means the user typed that same char for this pos. @@ -242,7 +245,7 @@ ProximityInfo::ProximityType ProximityInfo::getMatchedProximityId(const int inde // If the non-accented, lowercased version of that first character matches c, // then we have a non-accented version of the accented character the user // typed. Treat it as a close char. - if (Dictionary::toBaseLowerCase(firstChar) == baseLowerC) + if (toBaseLowerCase(firstChar) == baseLowerC) return NEAR_PROXIMITY_CHAR; // Not an exact nor an accent-alike match: search the list of close keys |