Skip to content

Commit 279d006

Browse files
Sonia SerafimovaJohan Redestig
authored andcommitted
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: I8a4729ceadcfc9744f11b8ceafdf24d6de88c645
1 parent 15f0a79 commit 279d006

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

graphics/java/android/graphics/drawable/NinePatchDrawable.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,17 @@ private void computeBitmapSize() {
164164
sdensity, tdensity);
165165
mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
166166
sdensity, tdensity);
167-
Rect dest = mPadding;
168-
Rect src = mNinePatchState.mPadding;
169-
if (dest == src) {
170-
mPadding = dest = new Rect(src);
167+
if (mNinePatchState.mPadding != null && mPadding != null) {
168+
Rect dest = mPadding;
169+
Rect src = mNinePatchState.mPadding;
170+
if (dest == src) {
171+
mPadding = dest = new Rect(src);
172+
}
173+
dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
174+
dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
175+
dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
176+
dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
171177
}
172-
dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
173-
dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
174-
dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
175-
dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
176178
}
177179
}
178180

0 commit comments

Comments
 (0)