Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3518ed60 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Fix one-off bugs reported by Valgrind" into jb-mr1-dev

parents 3069e226 18ebba3a
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -360,7 +360,7 @@ inline int BinaryFormat::getTerminalPosition(const uint8_t *const root,
    while (true) {
    while (true) {
        // If we already traversed the tree further than the word is long, there means
        // If we already traversed the tree further than the word is long, there means
        // there was no match (or we would have found it).
        // there was no match (or we would have found it).
        if (wordPos > length) return NOT_VALID_WORD;
        if (wordPos >= length) return NOT_VALID_WORD;
        int charGroupCount = BinaryFormat::getGroupCountAndForwardPointer(root, &pos);
        int charGroupCount = BinaryFormat::getGroupCountAndForwardPointer(root, &pos);
        const int32_t wChar = forceLowerCaseSearch ? toLowerCase(inWord[wordPos]) : inWord[wordPos];
        const int32_t wChar = forceLowerCaseSearch ? toLowerCase(inWord[wordPos]) : inWord[wordPos];
        while (true) {
        while (true) {
@@ -383,7 +383,7 @@ inline int BinaryFormat::getTerminalPosition(const uint8_t *const root,
                        // character that does not match, as explained above, it means the word is
                        // character that does not match, as explained above, it means the word is
                        // not in the dictionary (by virtue of this chargroup being the only one to
                        // not in the dictionary (by virtue of this chargroup being the only one to
                        // match the word on the first character, but not matching the whole word).
                        // match the word on the first character, but not matching the whole word).
                        if (wordPos > length) return NOT_VALID_WORD;
                        if (wordPos >= length) return NOT_VALID_WORD;
                        if (inWord[wordPos] != character) return NOT_VALID_WORD;
                        if (inWord[wordPos] != character) return NOT_VALID_WORD;
                        character = BinaryFormat::getCodePointAndForwardPointer(root, &pos);
                        character = BinaryFormat::getCodePointAndForwardPointer(root, &pos);
                    }
                    }
+4 −4
Original line number Original line Diff line number Diff line
@@ -546,9 +546,9 @@ int UnigramDictionary::getSubStringSuggestion(
        freq = score >> (nextWordLength + TWO_WORDS_PLUS_OTHER_ERROR_CORRECTION_DEMOTION_DIVIDER);
        freq = score >> (nextWordLength + TWO_WORDS_PLUS_OTHER_ERROR_CORRECTION_DEMOTION_DIVIDER);
    }
    }
    if (DEBUG_DICT) {
    if (DEBUG_DICT) {
        AKLOGI("Freq(%d): %d, length: %d, input length: %d, input start: %d (%d)"
        AKLOGI("Freq(%d): %d, length: %d, input length: %d, input start: %d (%d)",
                , currentWordIndex, freq, nextWordLength, inputWordLength, inputWordStartPos,
                currentWordIndex, freq, nextWordLength, inputWordLength, inputWordStartPos,
                wordLengthArray[0]);
                (currentWordIndex > 0) ? wordLengthArray[0] : 0);
    }
    }
    if (freq <= 0 || nextWordLength <= 0
    if (freq <= 0 || nextWordLength <= 0
            || MAX_WORD_LENGTH <= (outputWordStartPos + nextWordLength)) {
            || MAX_WORD_LENGTH <= (outputWordStartPos + nextWordLength)) {