diff options
author | 2013-12-16 22:42:01 +0900 | |
---|---|---|
committer | 2013-12-16 22:42:01 +0900 | |
commit | 56e7e38d372c726724c80246e6187dc1241ecfea (patch) | |
tree | c1b4270d6a69f910359d417f149c2e080c09173c /java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java | |
parent | c1163c85187bf4deddb54c64f05e2f5ec97e08b4 (diff) | |
download | latinime-56e7e38d372c726724c80246e6187dc1241ecfea.tar.gz latinime-56e7e38d372c726724c80246e6187dc1241ecfea.tar.xz latinime-56e7e38d372c726724c80246e6187dc1241ecfea.zip |
Fix: incompatible PtNode array size reading.
Bug: 11073222
Change-Id: I681be725b5c6dcc10aa536b00327698a7df75277
Diffstat (limited to 'java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java index 7f0aa777f..acabea10d 100644 --- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java +++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java @@ -436,7 +436,7 @@ public final class BinaryDictDecoderUtils { final FormatOptions options) { dictDecoder.setPosition(headerSize); final int count = dictDecoder.readPtNodeCount(); - int groupPos = headerSize + BinaryDictIOUtils.getPtNodeCountSize(count); + int groupPos = dictDecoder.getPosition(); final StringBuilder builder = new StringBuilder(); WeightedString result = null; @@ -498,9 +498,9 @@ public final class BinaryDictDecoderUtils { do { // Scan the linked-list node. final int nodeArrayHeadPos = dictDecoder.getPosition(); final int count = dictDecoder.readPtNodeCount(); - int groupOffsetPos = nodeArrayHeadPos + BinaryDictIOUtils.getPtNodeCountSize(count); + int groupPos = dictDecoder.getPosition(); for (int i = count; i > 0; --i) { // Scan the array of PtNode. - PtNodeInfo info = dictDecoder.readPtNode(groupOffsetPos, options); + PtNodeInfo info = dictDecoder.readPtNode(groupPos, options); if (BinaryDictIOUtils.isMovedPtNode(info.mFlags, options)) continue; ArrayList<WeightedString> shortcutTargets = info.mShortcutTargets; ArrayList<WeightedString> bigrams = null; @@ -536,7 +536,7 @@ public final class BinaryDictDecoderUtils { 0 != (info.mFlags & FormatSpec.FLAG_IS_NOT_A_WORD), 0 != (info.mFlags & FormatSpec.FLAG_IS_BLACKLISTED))); } - groupOffsetPos = info.mEndAddress; + groupPos = info.mEndAddress; } // reach the end of the array. |