am 0874939e: am a8b838b4: Merge "Fix a test and crash with a better error message when reading"

* commit '0874939e1086baceba9c1f94ca98a7a5837e7813':
  Fix a test and crash with a better error message when reading
main
Jean Chalard 2013-10-09 17:54:40 -07:00 committed by Android Git Automerger
commit 4afd8ff474
3 changed files with 7 additions and 3 deletions

View File

@ -169,7 +169,8 @@ public class Ver3DictDecoder extends DictDecoder {
addressPointer += PtNodeReader.readBigramAddresses(mDictBuffer, bigrams, addressPointer += PtNodeReader.readBigramAddresses(mDictBuffer, bigrams,
addressPointer); addressPointer);
if (bigrams.size() >= FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) { if (bigrams.size() >= FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) {
MakedictLog.d("too many bigrams in a PtNode."); throw new RuntimeException("Too many bigrams in a PtNode (" + bigrams.size()
+ " but max is " + FormatSpec.MAX_BIGRAMS_IN_A_PTNODE + ")");
} }
} else { } else {
bigrams = null; bigrams = null;

View File

@ -224,7 +224,8 @@ public class Ver4DictDecoder extends DictDecoder {
if (0 == (bigramFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT)) break; if (0 == (bigramFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT)) break;
} }
if (bigrams.size() >= FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) { if (bigrams.size() >= FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) {
MakedictLog.d("too many bigrams in a node."); throw new RuntimeException("Too many bigrams in a PtNode (" + bigrams.size()
+ " but max is " + FormatSpec.MAX_BIGRAMS_IN_A_PTNODE + ")");
} }
} else { } else {
bigrams = null; bigrams = null;

View File

@ -104,7 +104,9 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
} }
sStarBigrams.put(0, new ArrayList<Integer>()); sStarBigrams.put(0, new ArrayList<Integer>());
for (int i = 1; i < sWords.size(); ++i) { // MAX - 1 because we added one above already
final int maxBigrams = Math.min(sWords.size(), FormatSpec.MAX_BIGRAMS_IN_A_PTNODE - 1);
for (int i = 1; i < maxBigrams; ++i) {
sStarBigrams.get(0).add(i); sStarBigrams.get(0).add(i);
} }