diff options
author | Adam Cohen <adamcohen@google.com> | 2013-10-15 10:18:02 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2013-10-15 10:55:29 -0700 |
commit | b6d33df9092cacfda1768ffdb96a0770c861566d (patch) | |
tree | c0e881c213c710059aa1ccf62c32957bd747cd4e /src/com/android/launcher3/IconCache.java | |
parent | e5467dccdd26ff912afb43d626346e4506c9c062 (diff) | |
download | packages_apps_Trebuchet-b6d33df9092cacfda1768ffdb96a0770c861566d.tar.gz packages_apps_Trebuchet-b6d33df9092cacfda1768ffdb96a0770c861566d.tar.bz2 packages_apps_Trebuchet-b6d33df9092cacfda1768ffdb96a0770c861566d.zip |
Fix concurrent modifcation exception (issue 11234805)
Change-Id: I21a7e968c249b0d8876fbffa68954ddc229b16df
Diffstat (limited to 'src/com/android/launcher3/IconCache.java')
-rw-r--r-- | src/com/android/launcher3/IconCache.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 2aab68bee..543b8ee2d 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -29,6 +29,8 @@ import android.graphics.Canvas; import android.graphics.drawable.Drawable; import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; /** * Cache of application icons. Icons can be made from any thread. @@ -151,10 +153,11 @@ public class IconCache { */ public void flushInvalidIcons(DeviceProfile grid) { synchronized (mCache) { - for (ComponentName cn : mCache.keySet()) { - final CacheEntry e = mCache.get(cn); + Iterator<Entry<ComponentName, CacheEntry>> it = mCache.entrySet().iterator(); + while (it.hasNext()) { + final CacheEntry e = it.next().getValue(); if (e.icon.getWidth() != grid.iconSizePx || e.icon.getHeight() != grid.iconSizePx) { - mCache.remove(cn); + it.remove(); } } } |