From de63cc6e8fe619193f06921d9fc51cfb0de49d2f Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Fri, 25 Oct 2019 13:18:29 -0700 Subject: [PATCH] Fix mistake in SurfaceView lifetime refactoring. When moving the SurfaceControl lifetime to the render-thread callback I also moved the Surface lifetime. There was no reason to do this since the SurfaceView Surface isn't accessed from render-thread. It introduces a small indeterminism in lifetime making a test fail, so we revert it for cleanness. Bug: 142011183 Test: Manual Change-Id: I98a3daf21e7ed598d557046fc5b2e4cfebf1c845 --- core/java/android/view/SurfaceView.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index a85830009f589..f8b20cf21a4ce 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -716,6 +716,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall mSurfaceAlpha = 1f; synchronized (mSurfaceControlLock) { + mSurface.release(); + if (mRtHandlingPositionUpdates) { mRtReleaseSurfaces = true; return; @@ -729,7 +731,6 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall mTmpTransaction.remove(mBackgroundControl); mBackgroundControl = null; } - mSurface.release(); mTmpTransaction.apply(); } } @@ -1202,7 +1203,6 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall mRtTransaction.remove(mBackgroundControl); mSurfaceControl = null; mBackgroundControl = null; - mSurface.release(); } mRtHandlingPositionUpdates = false; }