Fix rare NPE
Bug: 8191673
diff --git a/src/com/android/launcher2/WidgetPreviewLoader.java b/src/com/android/launcher2/WidgetPreviewLoader.java
index 7c72701..6c06e0f 100644
--- a/src/com/android/launcher2/WidgetPreviewLoader.java
+++ b/src/com/android/launcher2/WidgetPreviewLoader.java
@@ -236,13 +236,15 @@
public void recycleBitmap(Object o, Bitmap bitmapToRecycle) {
String name = getObjectName(o);
- synchronized(mLoadedPreviews) {
- synchronized(mUnusedBitmaps) {
+ synchronized (mLoadedPreviews) {
+ if (mLoadedPreviews.containsKey(name)) {
Bitmap b = mLoadedPreviews.get(name).get();
if (b == bitmapToRecycle) {
mLoadedPreviews.remove(name);
if (bitmapToRecycle.isMutable()) {
- mUnusedBitmaps.add(new SoftReference<Bitmap>(b));
+ synchronized (mUnusedBitmaps) {
+ mUnusedBitmaps.add(new SoftReference<Bitmap>(b));
+ }
}
} else {
throw new RuntimeException("Bitmap passed in doesn't match up");