From 54285f2cbfb6e307d594ca264f7230b4e1e3cdce Mon Sep 17 00:00:00 2001 From: Phil Dubach Date: Mon, 29 Jun 2009 20:34:13 -0700 Subject: Fix NullPointerException in NinePatch constructor NinePatch.mPaint may be null and most methods in this class handle that case properly. However, the constructor which derives a new NinePatch from an existing instance assumes that mPaint is non-null. This results in an unexpected NullPointerException, for example when attempting to call NinePatchDrawable.mutate() on an instance that was created from a resource. Small unrelated fix in same file: Remove unused private mRect member. --- graphics/java/android/graphics/NinePatch.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'graphics') diff --git a/graphics/java/android/graphics/NinePatch.java b/graphics/java/android/graphics/NinePatch.java index 2b24ef2..778c903 100644 --- a/graphics/java/android/graphics/NinePatch.java +++ b/graphics/java/android/graphics/NinePatch.java @@ -57,7 +57,9 @@ public class NinePatch { mBitmap = patch.mBitmap; mChunk = patch.mChunk; mSrcName = patch.mSrcName; - mPaint = new Paint(patch.mPaint); + if (patch.mPaint != null) { + mPaint = new Paint(patch.mPaint); + } validateNinePatchChunk(mBitmap.ni(), mChunk); } @@ -120,7 +122,6 @@ public class NinePatch { public native static boolean isNinePatchChunk(byte[] chunk); - private final Rect mRect = new Rect(); private final Bitmap mBitmap; private final byte[] mChunk; private Paint mPaint; -- cgit v1.1