Prevent unhandled exception in NinePatchDrawable

Added null check in computeBitmapSize() to avoid unhandled
exception "java.lang.NullPointerException" at
android.graphics.Rect.<init>(Rect.java:72).

This problem was discovered in the wild.

Change-Id: I9d40629a052f1390e1811288af6209d8cc3f679b
This commit is contained in:
Sonia Serafimova
2010-09-15 13:18:44 +02:00
committed by Jean-Baptiste Queru
parent beabe75a84
commit d45a33554c

View File

@@ -164,15 +164,17 @@ public class NinePatchDrawable extends Drawable {
sdensity, tdensity); sdensity, tdensity);
mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(), mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
sdensity, tdensity); sdensity, tdensity);
Rect dest = mPadding; if (mNinePatchState.mPadding != null && mPadding != null) {
Rect src = mNinePatchState.mPadding; Rect dest = mPadding;
if (dest == src) { Rect src = mNinePatchState.mPadding;
mPadding = dest = new Rect(src); if (dest == src) {
mPadding = dest = new Rect(src);
}
dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
} }
dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
} }
} }