aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2013-10-01 23:29:35 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-01 23:29:35 -0700
commit0874939e1086baceba9c1f94ca98a7a5837e7813 (patch)
tree58c40768b4e6658043e0ddb1ff9433cd517c4120
parent319eb1c363a0d443cace14ee41c575a67ecfc93a (diff)
parenta8b838b473d4927e6f0483912c45fba929dfb402 (diff)
downloadlatinime-0874939e1086baceba9c1f94ca98a7a5837e7813.tar.gz
latinime-0874939e1086baceba9c1f94ca98a7a5837e7813.tar.xz
latinime-0874939e1086baceba9c1f94ca98a7a5837e7813.zip
am a8b838b4: Merge "Fix a test and crash with a better error message when reading"
* commit 'a8b838b473d4927e6f0483912c45fba929dfb402': Fix a test and crash with a better error message when reading
-rw-r--r--java/src/com/android/inputmethod/latin/makedict/Ver3DictDecoder.java3
-rw-r--r--java/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java3
-rw-r--r--tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java4
3 files changed, 7 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver3DictDecoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver3DictDecoder.java
index 75d1058ad..bf5a28d62 100644
--- a/java/src/com/android/inputmethod/latin/makedict/Ver3DictDecoder.java
+++ b/java/src/com/android/inputmethod/latin/makedict/Ver3DictDecoder.java
@@ -169,7 +169,8 @@ public class Ver3DictDecoder extends DictDecoder {
addressPointer += PtNodeReader.readBigramAddresses(mDictBuffer, bigrams,
addressPointer);
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 {
bigrams = null;
diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
index fa19e2677..89370f0dc 100644
--- a/java/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
+++ b/java/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
@@ -224,7 +224,8 @@ public class Ver4DictDecoder extends DictDecoder {
if (0 == (bigramFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT)) break;
}
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 {
bigrams = null;
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
index a4d94262f..be98a84d6 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
@@ -104,7 +104,9 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
}
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);
}