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
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index a858300..f8b20cf 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -716,6 +716,8 @@
mSurfaceAlpha = 1f;
synchronized (mSurfaceControlLock) {
+ mSurface.release();
+
if (mRtHandlingPositionUpdates) {
mRtReleaseSurfaces = true;
return;
@@ -729,7 +731,6 @@
mTmpTransaction.remove(mBackgroundControl);
mBackgroundControl = null;
}
- mSurface.release();
mTmpTransaction.apply();
}
}
@@ -1202,7 +1203,6 @@
mRtTransaction.remove(mBackgroundControl);
mSurfaceControl = null;
mBackgroundControl = null;
- mSurface.release();
}
mRtHandlingPositionUpdates = false;
}