From 8644050a99cacd62362a9fe490161c7484cc2caa Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Mon, 4 May 2020 11:23:29 -0700 Subject: [PATCH] SurfaceControlViewHost: Let ViewRoot release control. In SurfaceControlViewHost#release we currently immediately release mSurfaceControl and then call ViewRootImpl#doDie. However doDie executes on a handler so the ViewRootImpl may try and use the SurfaceControl between posting and executing the message. Actually this release is totally erroneous, mSurfaceControl is the same object used by the ViewRootImpl and the ViewRootImpl will release it when processing doDie(). Bug: 155575445 Test: Existing tests pass Change-Id: I6a4bf41ba38636ff884aa73d2653b1bab6958b00 --- core/java/android/view/SurfaceControlViewHost.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java index 3d6da6f71b3ff..dcc320dff4c73 100644 --- a/core/java/android/view/SurfaceControlViewHost.java +++ b/core/java/android/view/SurfaceControlViewHost.java @@ -264,8 +264,8 @@ public class SurfaceControlViewHost { * and render the object unusable. */ public void release() { + // ViewRoot will release mSurfaceControl for us. mViewRoot.die(false /* immediate */); - mSurfaceControl.release(); } /**