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

Commit ee396df1 authored by Jean Chalard's avatar Jean Chalard
Browse files

Fix a native crash

This was introduced by Ieb2e306a which failed to keep the return
behavior in case the word doesn't have a bigram.

Change-Id: I6d2f0b79d41c4335e94696690c8331e314961133
parent 12776925
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -109,6 +109,8 @@ int BigramDictionary::getBigrams(unsigned short *prevWord, int prevWordLength, i

    const uint8_t* const root = DICT;
    int pos = getBigramListForWord(root, prevWord, prevWordLength);
    // getBigramListForWord returns 0 if this word is not in the dictionary or has no bigrams
    if (0 == pos) return 0;
    int bigramFlags;
    int bigramCount = 0;
    do {
@@ -130,6 +132,8 @@ int BigramDictionary::getBigrams(unsigned short *prevWord, int prevWordLength, i
    return bigramCount;
}

// Returns a pointer to the start of the bigram list.
// If the word is not found or has no bigrams, this function returns 0.
int BigramDictionary::getBigramListForWord(const uint8_t* const root,
        const unsigned short *prevWord, const int prevWordLength) {
    int pos = BinaryFormat::getTerminalPosition(root, prevWord, prevWordLength);