Merge "Fix Display SurfaceControl leak" into rvc-dev

This commit is contained in:
Chavi Weingarten
2020-02-25 18:11:54 +00:00
committed by Android (Google) Code Review
2 changed files with 3 additions and 7 deletions

View File

@@ -2712,6 +2712,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
mRemovingDisplay = false; mRemovingDisplay = false;
} }
// Apply the pending transaction here since we may not be able to reach the DisplayContent
// on the next traversal if it's removed from RootWindowContainer child list.
getPendingTransaction().apply();
mWmService.mWindowPlacerLocked.requestTraversal(); mWmService.mWindowPlacerLocked.requestTraversal();
} }

View File

@@ -524,13 +524,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
if (mSurfaceControl != null) { if (mSurfaceControl != null) {
getPendingTransaction().remove(mSurfaceControl); getPendingTransaction().remove(mSurfaceControl);
// Merge to parent transaction to ensure the transactions on this WindowContainer are
// applied in native even if WindowContainer is removed.
if (mParent != null) {
mParent.getPendingTransaction().merge(getPendingTransaction());
}
setSurfaceControl(null); setSurfaceControl(null);
mLastSurfacePosition.set(0, 0); mLastSurfacePosition.set(0, 0);
scheduleAnimation(); scheduleAnimation();