summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/exif/ExifParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/exif/ExifParser.java')
-rw-r--r--src/com/android/gallery3d/exif/ExifParser.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/exif/ExifParser.java b/src/com/android/gallery3d/exif/ExifParser.java
index 268c989b0..f6ecd7798 100644
--- a/src/com/android/gallery3d/exif/ExifParser.java
+++ b/src/com/android/gallery3d/exif/ExifParser.java
@@ -405,7 +405,7 @@ public class ExifParser {
*/
public int getCompressedImageSize() {
if (mJpegSizeTag == null) return 0;
- return (int) mJpegSizeTag.getUnsignedInt();
+ return (int) mJpegSizeTag.getUnsignedInt(0);
}
private void skipTo(int offset) throws IOException {
@@ -449,7 +449,8 @@ public class ExifParser {
"Number of component is larger then Integer.MAX_VALUE");
}
ExifTag tag = new ExifTag(tagId, dataFormat, (int) numOfComp, mIfdType);
- if (tag.getDataSize() > 4) {
+ int dataSize = tag.getDataSize();
+ if (dataSize > 4) {
long offset = mTiffStream.readUnsignedInt();
if (offset > Integer.MAX_VALUE) {
throw new ExifInvalidFormatException(
@@ -458,7 +459,7 @@ public class ExifParser {
tag.setOffset((int) offset);
} else {
readFullTagValue(tag);
- mTiffStream.skip(4 - tag.getDataSize());
+ mTiffStream.skip(4 - dataSize);
}
return tag;
}
@@ -472,22 +473,22 @@ public class ExifParser {
case ExifTag.TIFF_TAG.TAG_EXIF_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_EXIF)
|| isIfdRequested(IfdId.TYPE_IFD_INTEROPERABILITY)) {
- registerIfd(IfdId.TYPE_IFD_EXIF, tag.getUnsignedInt());
+ registerIfd(IfdId.TYPE_IFD_EXIF, tag.getUnsignedInt(0));
}
break;
case ExifTag.TIFF_TAG.TAG_GPS_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_GPS)) {
- registerIfd(IfdId.TYPE_IFD_GPS, tag.getUnsignedInt());
+ registerIfd(IfdId.TYPE_IFD_GPS, tag.getUnsignedInt(0));
}
break;
case ExifTag.EXIF_TAG.TAG_INTEROPERABILITY_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_INTEROPERABILITY)) {
- registerIfd(IfdId.TYPE_IFD_INTEROPERABILITY, tag.getUnsignedInt());
+ registerIfd(IfdId.TYPE_IFD_INTEROPERABILITY, tag.getUnsignedInt(0));
}
break;
case ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT:
if (isThumbnailRequested()) {
- registerCompressedImage(tag.getUnsignedInt());
+ registerCompressedImage(tag.getUnsignedInt(0));
}
break;
case ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT_LENGTH: