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
main
Jean Chalard 2012-04-17 16:02:35 +09:00
parent 1277692519
commit ee396df162
1 changed files with 4 additions and 0 deletions

View File

@ -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);