8278805: Enhance BMP image loading
Reviewed-by: andrew
Backport-of: 6319119be51e595be82f253b9f5e9495e72d4ad9
diff --git a/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java b/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
index 3aaf73c..bff23de 100644
--- a/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
+++ b/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
@@ -69,8 +69,9 @@
import java.util.List;
import java.util.StringTokenizer;
-import com.sun.imageio.plugins.common.ImageUtil;
import com.sun.imageio.plugins.common.I18N;
+import com.sun.imageio.plugins.common.ImageUtil;
+import com.sun.imageio.plugins.common.ReaderUtil;
/** This class is the Java Image IO plugin reader for BMP images.
* It may subsample the image, clip the image, select sub-bands,
@@ -1536,9 +1537,8 @@
}
// Read till we have the whole image
- byte values[] = new byte[imSize];
- int bytesRead = 0;
- iis.readFully(values, 0, imSize);
+ byte[] values = ReaderUtil.
+ staggeredReadByteStream(iis, imSize);
// Since data is compressed, decompress it
decodeRLE8(imSize, padding, values, bdata);
@@ -1720,8 +1720,8 @@
}
// Read till we have the whole image
- byte[] values = new byte[imSize];
- iis.readFully(values, 0, imSize);
+ byte[] values = ReaderUtil.
+ staggeredReadByteStream(iis, imSize);
// Decompress the RLE4 compressed data.
decodeRLE4(imSize, padding, values, bdata);