Prevent reentrance in Dialog.findViewById()

BUG: 12063988
Change-Id: I58117949dde589bcdfcfe88ec90b4a6e8418fe2a
This commit is contained in:
Alan Viverette
2013-12-09 14:50:41 -08:00
parent 5436b0cfe3
commit c21569aef8

View File

@@ -105,6 +105,9 @@ public class Dialog implements DialogInterface, Window.Callback,
private boolean mShowing = false;
private boolean mCanceled = false;
/** Whether the execution path is currently in onCreate(). */
private boolean mInOnCreate = false;
private final Handler mHandler = new Handler();
private static final int DISMISS = 0x43;
@@ -356,8 +359,10 @@ public class Dialog implements DialogInterface, Window.Callback,
// internal method to make sure mcreated is set properly without requiring
// users to call through to super in onCreate
void dispatchOnCreate(Bundle savedInstanceState) {
if (!mCreated) {
if (!mCreated && !mInOnCreate) {
mInOnCreate = true;
onCreate(savedInstanceState);
mInOnCreate = false;
mCreated = true;
}
}