From fc7ce783c53fbd65c8bce8721a412e831099b0e2 Mon Sep 17 00:00:00 2001 From: David Morrissey Date: Tue, 13 Oct 2015 09:08:50 +0100 Subject: [PATCH] #128 Close inputstream after decoding bitmap --- .../labs/subscaleview/decoder/SkiaImageDecoder.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/library/src/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java b/library/src/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java index aefaf80f..3a42d315 100644 --- a/library/src/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java +++ b/library/src/com/davemorrissey/labs/subscaleview/decoder/SkiaImageDecoder.java @@ -9,6 +9,7 @@ import android.net.Uri; import android.text.TextUtils; +import java.io.InputStream; import java.util.List; /** @@ -59,8 +60,16 @@ public Bitmap decode(Context context, Uri uri) throws Exception { } else if (uriString.startsWith(FILE_PREFIX)) { bitmap = BitmapFactory.decodeFile(uriString.substring(FILE_PREFIX.length()), options); } else { - ContentResolver contentResolver = context.getContentResolver(); - bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri), null, options); + InputStream inputStream = null; + try { + ContentResolver contentResolver = context.getContentResolver(); + inputStream = contentResolver.openInputStream(uri); + bitmap = BitmapFactory.decodeStream(inputStream, null, options); + } finally { + if (inputStream != null) { + try { inputStream.close(); } catch (Exception e) { } + } + } } if (bitmap == null) { throw new RuntimeException("Skia image region decoder returned null bitmap - image format may not be supported");