diff --git a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java index 2f9cc5e260305c9a76c52bffae73e20924a3e87d..e6ca4aa7543a18f73ca312ce07340118b07a1d94 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java @@ -271,7 +271,8 @@ public final class Downsampler { if ((options.inSampleSize == 1 || isKitKatOrGreater) && shouldUsePool(imageType)) { int expectedWidth; int expectedHeight; - if (fixBitmapToRequestedDimensions && isKitKatOrGreater) { + if (sourceWidth >= 0 && sourceHeight >= 0 + && fixBitmapToRequestedDimensions && isKitKatOrGreater) { expectedWidth = targetWidth; expectedHeight = targetHeight; } else { @@ -336,6 +337,10 @@ public final class Downsampler { BitmapFactory.Options options) throws IOException { // We can't downsample source content if we can't determine its dimensions. if (sourceWidth <= 0 || sourceHeight <= 0) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Unable to determine dimensions for: " + imageType + + " with target [" + targetWidth + "x" + targetHeight + "]"); + } return; } diff --git a/library/src/main/java/com/bumptech/glide/util/MarkEnforcingInputStream.java b/library/src/main/java/com/bumptech/glide/util/MarkEnforcingInputStream.java index bec16fa671476aef98a1a6e1aced5a73fcc860ee..d2ce60308cbf42e1844a07caa60336c4feecb5e0 100644 --- a/library/src/main/java/com/bumptech/glide/util/MarkEnforcingInputStream.java +++ b/library/src/main/java/com/bumptech/glide/util/MarkEnforcingInputStream.java @@ -57,7 +57,7 @@ public class MarkEnforcingInputStream extends FilterInputStream { public long skip(long byteCount) throws IOException { long toSkip = getBytesToRead(byteCount); if (toSkip == END_OF_STREAM) { - return END_OF_STREAM; + return 0; } long read = super.skip(toSkip); diff --git a/library/src/test/java/com/bumptech/glide/util/MarkEnforcingInputStreamTest.java b/library/src/test/java/com/bumptech/glide/util/MarkEnforcingInputStreamTest.java index 1e18b42032da891419f749150a17f3f3553944c8..5684e3c13b45b08be3d40d5a8b84c900f49954d6 100644 --- a/library/src/test/java/com/bumptech/glide/util/MarkEnforcingInputStreamTest.java +++ b/library/src/test/java/com/bumptech/glide/util/MarkEnforcingInputStreamTest.java @@ -135,7 +135,7 @@ public class MarkEnforcingInputStreamTest { is.mark(MARK_LIMIT); assertEquals(MARK_LIMIT, is.skip(DATA_SIZE)); - assertEquals(-1, is.skip(1)); + assertEquals(0, is.skip(1)); } @Test