diff options
author | 2012-09-20 20:37:44 +0900 | |
---|---|---|
committer | 2012-09-20 20:37:44 +0900 | |
commit | 379aeb18366f29b8d9d0f90e2fbb0daa3aaeefa4 (patch) | |
tree | 1836a0f65c41e66e65b22c2282c2807935dffe7a /java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java | |
parent | f18fc03621b70f5a51cf54c4bf40eb213de40652 (diff) | |
parent | 54717534b1164c575a14a4a117284e72c6cd0ee0 (diff) | |
download | latinime-379aeb18366f29b8d9d0f90e2fbb0daa3aaeefa4.tar.gz latinime-379aeb18366f29b8d9d0f90e2fbb0daa3aaeefa4.tar.xz latinime-379aeb18366f29b8d9d0f90e2fbb0daa3aaeefa4.zip |
Merge remote-tracking branch 'goog/jb-mr1-dev' into mergescriptpackage
Diffstat (limited to 'java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index 9a888ade4..9764df072 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -28,7 +28,7 @@ import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.nio.ByteBuffer; +import java.nio.BufferUnderflowException; import java.nio.channels.FileChannel; import java.util.ArrayList; import java.util.HashMap; @@ -357,14 +357,15 @@ class BinaryDictionaryGetter { try { // Read the version of the file inStream = new FileInputStream(f); - final ByteBuffer buffer = inStream.getChannel().map( - FileChannel.MapMode.READ_ONLY, 0, f.length()); - final int magic = buffer.getInt(); + final BinaryDictInputOutput.ByteBufferWrapper buffer = + new BinaryDictInputOutput.ByteBufferWrapper(inStream.getChannel().map( + FileChannel.MapMode.READ_ONLY, 0, f.length())); + final int magic = buffer.readInt(); if (magic != FormatSpec.VERSION_2_MAGIC_NUMBER) { return false; } - final int formatVersion = buffer.getInt(); - final int headerSize = buffer.getInt(); + final int formatVersion = buffer.readInt(); + final int headerSize = buffer.readInt(); final HashMap<String, String> options = CollectionUtils.newHashMap(); BinaryDictInputOutput.populateOptions(buffer, headerSize, options); @@ -382,6 +383,8 @@ class BinaryDictionaryGetter { return false; } catch (NumberFormatException e) { return false; + } catch (BufferUnderflowException e) { + return false; } finally { if (inStream != null) { try { |