diff options
author | Sam Judd <judds@google.com> | 2014-10-20 09:31:42 -0700 |
---|---|---|
committer | Sam Judd <judds@google.com> | 2014-10-20 09:31:42 -0700 |
commit | 3ea7f151576f197df4bd6c3cce46f229cc281698 (patch) | |
tree | a9c79aa5c0ba309a8aff8d97b117c8f55987fe0e /library/src/main | |
parent | 29fa7dda76bf92f8d106826ec2769c0ddaade551 (diff) | |
download | glide-3ea7f151576f197df4bd6c3cce46f229cc281698.tar.gz |
Handle null Config requests in LruBitmapPool.
Fixes #194.
Diffstat (limited to 'library/src/main')
-rw-r--r-- | library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/LruBitmapPool.java | 5 | ||||
-rw-r--r-- | library/src/main/java/com/bumptech/glide/load/resource/bitmap/CenterCrop.java | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/LruBitmapPool.java b/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/LruBitmapPool.java index c5767869..cc59abc1 100644 --- a/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/LruBitmapPool.java +++ b/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/LruBitmapPool.java @@ -19,6 +19,7 @@ import java.util.Set; */ public class LruBitmapPool implements BitmapPool { private static final String TAG = "LruBitmapPool"; + private static final Bitmap.Config DEFAULT_CONFIG = Bitmap.Config.ARGB_8888; private final LruPoolStrategy strategy; private final int initialMaxSize; @@ -101,7 +102,9 @@ public class LruBitmapPool implements BitmapPool { @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override public synchronized Bitmap getDirty(int width, int height, Bitmap.Config config) { - final Bitmap result = strategy.get(width, height, config); + // Config will be null for non public config types, which can lead to transformations naively passing in + // null as the requested config here. See issue #194. + final Bitmap result = strategy.get(width, height, config != null ? config : DEFAULT_CONFIG); if (result == null) { if (Log.isLoggable(TAG, Log.DEBUG)) { Log.d(TAG, "Missing bitmap=" + strategy.logBitmap(width, height, config)); diff --git a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/CenterCrop.java b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/CenterCrop.java index d3633edd..62eda0fa 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/CenterCrop.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/CenterCrop.java @@ -25,7 +25,8 @@ public class CenterCrop extends BitmapTransformation { @SuppressWarnings("PMD.CompareObjectsWithEquals") @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { - final Bitmap toReuse = pool.get(outWidth, outHeight, toTransform.getConfig()); + final Bitmap toReuse = pool.get(outWidth, outHeight, toTransform.getConfig() != null + ? toTransform.getConfig() : Bitmap.Config.ARGB_8888); Bitmap transformed = TransformationUtils.centerCrop(toReuse, toTransform, outWidth, outHeight); if (toReuse != null && toReuse != transformed && !pool.put(toReuse)) { toReuse.recycle(); |