Fix two bugs in dicttool

Both bugs only affect debug mode. One has the wrong object tested
with equals, the other has the iteration failing in some cases.

Change-Id: Ie9100d257a3f9e3be340cf3e38116f63417bdc1a
This commit is contained in:
Jean Chalard 2013-04-10 21:15:38 +09:00
parent 4f43076370
commit ca0fdbbe2e

View file

@ -647,7 +647,7 @@ public final class FusionDictionary implements Iterable<Word> {
if (index < codePoints.length) return null;
if (!currentGroup.isTerminal()) return null;
if (DBG && !codePoints.equals(checker.toString())) return null;
if (DBG && !string.equals(checker.toString())) return null;
return currentGroup;
}
@ -853,16 +853,19 @@ public final class FusionDictionary implements Iterable<Word> {
if (currentPos.pos.hasNext()) {
final CharGroup currentGroup = currentPos.pos.next();
currentPos.length = mCurrentString.length();
for (int i : currentGroup.mChars)
for (int i : currentGroup.mChars) {
mCurrentString.append(Character.toChars(i));
}
if (null != currentGroup.mChildren) {
currentPos = new Position(currentGroup.mChildren.mData);
currentPos.length = mCurrentString.length();
mPositions.addLast(currentPos);
}
if (currentGroup.mFrequency >= 0)
if (currentGroup.mFrequency >= 0) {
return new Word(mCurrentString.toString(), currentGroup.mFrequency,
currentGroup.mShortcutTargets, currentGroup.mBigrams,
currentGroup.mIsNotAWord, currentGroup.mIsBlacklistEntry);
}
} else {
mPositions.removeLast();
currentPos = mPositions.getLast();