From 751839bd2a8512efd83c3a60f775f495c272f08d Mon Sep 17 00:00:00 2001 From: Tiger Huang Date: Fri, 5 Nov 2021 00:38:36 +0800 Subject: [PATCH] Make sure mParent is not null before using it Otherwise, there will be NullPointerException. Fix: 204883084 Test: Run the following code and see if it crashes. ViewGroup v = new FrameLayout(context); v.requestTransparentRegion(v); getWindowManager().addView(v, attrs); getWindowManager().removeView(v); Change-Id: I059e13d2a258cf85dbc1694fb79b6088199de3fb --- core/java/android/view/View.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 572a7cdabdc95..f4386099a5506 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -20270,7 +20270,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ @CallSuper protected void onAttachedToWindow() { - if ((mPrivateFlags & PFLAG_REQUEST_TRANSPARENT_REGIONS) != 0) { + if (mParent != null && (mPrivateFlags & PFLAG_REQUEST_TRANSPARENT_REGIONS) != 0) { mParent.requestTransparentRegion(this); } @@ -25044,7 +25044,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, View parent = this; - while (parent.mParent != null && parent.mParent instanceof View) { + while (parent.mParent instanceof View) { parent = (View) parent.mParent; }