diff options
author | Romain Guy <romainguy@google.com> | 2012-09-07 10:19:36 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-07 10:32:55 -0700 |
commit | 6543c292b2d1cb3547f4565f89b7cb649ad955d6 (patch) | |
tree | 076efb8193c05c3bdd3ffdd90b674d67d0e99636 /core/java/android | |
parent | f6aa537c2dddfa9c68af161c082b5d4f316bd068 (diff) | |
parent | 5f49c3023a512efbef8bc9515d310c7a72be4af2 (diff) | |
download | frameworks_base-6543c292b2d1cb3547f4565f89b7cb649ad955d6.zip frameworks_base-6543c292b2d1cb3547f4565f89b7cb649ad955d6.tar.gz frameworks_base-6543c292b2d1cb3547f4565f89b7cb649ad955d6.tar.bz2 |
Merge "The drawables cache strikes again Bug #7117785" into jb-mr1-dev
Diffstat (limited to 'core/java/android')
-rwxr-xr-x | core/java/android/content/res/Resources.java | 4 | ||||
-rw-r--r-- | core/java/android/view/View.java | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index 42a6bdc..b316f23 100755 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java @@ -1897,12 +1897,14 @@ public class Resources { } } - final long key = (((long) value.assetCookie) << 32) | value.data; boolean isColorDrawable = false; if (value.type >= TypedValue.TYPE_FIRST_COLOR_INT && value.type <= TypedValue.TYPE_LAST_COLOR_INT) { isColorDrawable = true; } + final long key = isColorDrawable ? value.data : + (((long) value.assetCookie) << 32) | value.data; + Drawable dr = getCachedDrawable(isColorDrawable ? mColorDrawableCache : mDrawableCache, key); if (dr != null) { diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index d735b7d..d268fd2 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -14118,7 +14118,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, @RemotableViewMethod public void setBackgroundColor(int color) { if (mBackground instanceof ColorDrawable) { - ((ColorDrawable) mBackground).setColor(color); + ((ColorDrawable) mBackground.mutate()).setColor(color); computeOpaqueFlags(); } else { setBackground(new ColorDrawable(color)); |