summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Dubach <phillipd@google.com>2009-06-29 16:57:46 -0700
committerPhil Dubach <phillipd@google.com>2009-06-29 18:31:17 -0700
commit6be507cc66863a08f08d6c0675e5bc11e5a45d32 (patch)
treedbafeff8aa6a5215cb02a026933bc46971d40c56
parent66c2942a112b65eec93c25263684a8c79cb21318 (diff)
downloadframeworks_base-6be507cc66863a08f08d6c0675e5bc11e5a45d32.zip
frameworks_base-6be507cc66863a08f08d6c0675e5bc11e5a45d32.tar.gz
frameworks_base-6be507cc66863a08f08d6c0675e5bc11e5a45d32.tar.bz2
Fix NullPointerException in DrawableContainer.mutate()
DrawableContainerState.mDrawables is an array which may be only partially filled, as can be seen in the constructor and the addChild() method. DrawableContainer.mutate() wrongly assumed that the array does not contain null references.
-rw-r--r--graphics/java/android/graphics/drawable/DrawableContainer.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index f8b88d0..376b1df 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -234,8 +234,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
@Override
public Drawable mutate() {
if (!mMutated && super.mutate() == this) {
- for (Drawable child : mDrawableContainerState.mDrawables) {
- child.mutate();
+ final int N = mDrawableContainerState.getChildCount();
+ final Drawable[] drawables = mDrawableContainerState.getChildren();
+ for (int i = 0; i < N; i++) {
+ drawables[i].mutate();
}
mMutated = true;
}