Merge "Fix a bug ending in a NPE in some rare cases."

This commit is contained in:
Jean Chalard 2011-09-27 02:31:29 -07:00 committed by Android (Google) Code Review
commit 091ee76285

View file

@ -217,7 +217,7 @@ public class FusionDictionary implements Iterable<Word> {
int nodeIndex = findIndexOfChar(mRoot, word[charIndex]); int nodeIndex = findIndexOfChar(mRoot, word[charIndex]);
while (CHARACTER_NOT_FOUND != nodeIndex) { while (CHARACTER_NOT_FOUND != nodeIndex) {
currentGroup = currentNode.mData.get(nodeIndex); currentGroup = currentNode.mData.get(nodeIndex);
differentCharIndex = compareArrays(currentGroup.mChars, word, charIndex) ; differentCharIndex = compareArrays(currentGroup.mChars, word, charIndex);
if (ARRAYS_ARE_EQUAL != differentCharIndex if (ARRAYS_ARE_EQUAL != differentCharIndex
&& differentCharIndex < currentGroup.mChars.length) break; && differentCharIndex < currentGroup.mChars.length) break;
if (null == currentGroup.mChildren) break; if (null == currentGroup.mChildren) break;
@ -268,7 +268,7 @@ public class FusionDictionary implements Iterable<Word> {
+ new String(word, 0, word.length)); + new String(word, 0, word.length));
} }
final CharGroup newGroup = new CharGroup(word, final CharGroup newGroup = new CharGroup(word,
currentGroup.mBigrams, frequency); currentGroup.mBigrams, frequency, currentGroup.mChildren);
currentNode.mData.set(nodeIndex, newGroup); currentNode.mData.set(nodeIndex, newGroup);
} }
} else { } else {