ViewRoot: Ensure we release surface from setWindowStopped.
Otherwise, we may attempt to reinitialize the ThreadedRenderer with a Surface which is not actually valid, e.g. from handleWindowFocusChanged. Entering a code path where the threaded renderer does not heed the stopped signal. This change ensures isValid returns false when the Surface is not valid preventing us from calling initialize/initializeIfNeeded, or udpateSurface. Bug: 62536731 Test: For the monkeys. Change-Id: I65939a29db4db70c6eb6bc4b258a9ed09a86e0ce
This commit is contained in:
@@ -1334,6 +1334,7 @@ public final class ViewRootImpl implements ViewParent,
|
||||
if (renderer != null) {
|
||||
renderer.destroyHardwareResources(mView);
|
||||
}
|
||||
mSurface.release();
|
||||
}
|
||||
|
||||
for (int i = 0; i < mWindowStoppedCallbacks.size(); i++) {
|
||||
|
||||
Reference in New Issue
Block a user