summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-09-07 10:19:36 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-07 10:32:55 -0700
commit6543c292b2d1cb3547f4565f89b7cb649ad955d6 (patch)
tree076efb8193c05c3bdd3ffdd90b674d67d0e99636 /core/java/android
parentf6aa537c2dddfa9c68af161c082b5d4f316bd068 (diff)
parent5f49c3023a512efbef8bc9515d310c7a72be4af2 (diff)
downloadframeworks_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-xcore/java/android/content/res/Resources.java4
-rw-r--r--core/java/android/view/View.java2
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));