diff options
-rw-r--r-- | src/com/android/gallery3d/exif/IfdParser.java | 10 | ||||
-rw-r--r-- | tests/src/com/android/gallery3d/exif/ExifParserTest.java | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/exif/IfdParser.java b/src/com/android/gallery3d/exif/IfdParser.java index b0b0bce10..0d1059cb0 100644 --- a/src/com/android/gallery3d/exif/IfdParser.java +++ b/src/com/android/gallery3d/exif/IfdParser.java @@ -125,9 +125,13 @@ public class IfdParser { } public String readString(int n) throws IOException { - byte[] buf = new byte[n]; - mTiffStream.readOrThrow(buf); - return new String(buf, 0, n - 1, "UTF8"); + if (n > 0) { + byte[] buf = new byte[n]; + mTiffStream.readOrThrow(buf); + return new String(buf, 0, n - 1, "UTF8"); + } else { + return ""; + } } public String readString(int n, Charset charset) throws IOException { diff --git a/tests/src/com/android/gallery3d/exif/ExifParserTest.java b/tests/src/com/android/gallery3d/exif/ExifParserTest.java index 34bbbda5f..35f4f3f1f 100644 --- a/tests/src/com/android/gallery3d/exif/ExifParserTest.java +++ b/tests/src/com/android/gallery3d/exif/ExifParserTest.java @@ -283,12 +283,8 @@ public class ExifParserTest extends InstrumentationTestCase { } break; case ExifTag.TYPE_ASCII: - buf = new byte[tag.getComponentCount()]; - parser.read(buf); - int length = 0; - while (buf[length] != 0 && length < buf.length) length++; - // trim the string to fit the answer from xml - sbuilder.append(new String(buf, 0, length).trim()); + // trim the string for comparison between xml + sbuilder.append(parser.readString(tag.getComponentCount()).trim()); break; case ExifTag.TYPE_INT: for(int i = 0; i < tag.getComponentCount(); i++) { |