From 96ffbdc9ddd8e8fd6582a907b1c5e916d21e44fa Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Thu, 11 Feb 2016 17:03:54 -0500 Subject: [PATCH] Use SkCodec::MinBufferedBytes() for front buffered image decode stream This should not change decode behavior, but it's worth noting that the number of bytes buffered will decrease from 64 to 30. Change-Id: I66b0e38a487c1786823b0125686b094dae5d13dc --- core/jni/android/graphics/BitmapFactory.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp index 92f781268732..8b248b07a07d 100644 --- a/core/jni/android/graphics/BitmapFactory.cpp +++ b/core/jni/android/graphics/BitmapFactory.cpp @@ -505,12 +505,6 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding bitmapCreateFlags, ninePatchChunk, ninePatchInsets, -1); } -// Need to buffer enough input to be able to rewind as much as might be read by a decoder -// trying to determine the stream's format. Currently the most is 64, read by -// SkWebpCodec. -// FIXME: Get this number from SkCodec -#define BYTES_TO_BUFFER 64 - static jobject nativeDecodeStream(JNIEnv* env, jobject clazz, jobject is, jbyteArray storage, jobject padding, jobject options) { @@ -519,7 +513,7 @@ static jobject nativeDecodeStream(JNIEnv* env, jobject clazz, jobject is, jbyteA if (stream.get()) { std::unique_ptr bufferedStream( - SkFrontBufferedStream::Create(stream.release(), BYTES_TO_BUFFER)); + SkFrontBufferedStream::Create(stream.release(), SkCodec::MinBufferedBytesNeeded())); SkASSERT(bufferedStream.get() != NULL); bitmap = doDecode(env, bufferedStream.release(), padding, options); } @@ -565,7 +559,7 @@ static jobject nativeDecodeFileDescriptor(JNIEnv* env, jobject clazz, jobject fi // ensures that SkImageDecoder::Factory never rewinds beyond the // current position of the file descriptor. std::unique_ptr stream(SkFrontBufferedStream::Create(fileStream.release(), - BYTES_TO_BUFFER)); + SkCodec::MinBufferedBytesNeeded())); return doDecode(env, stream.release(), padding, bitmapFactoryOptions); } -- 2.11.0