diff options
author | Robert Carr <racarr@google.com> | 2019-09-24 12:03:18 -0700 |
---|---|---|
committer | Robert Carr <racarr@google.com> | 2019-09-24 12:03:18 -0700 |
commit | 172bdbc5026fdafb30905e7e462c5184c8cd840f (patch) | |
tree | b181f67c20ad1ddef2044d7580bb715f9327341e /rs/java/android/renderscript/ProgramFragmentFixedFunction.java | |
parent | 196200dec24cdbcba8f3e2ffef758c18561161d5 (diff) |
SurfaceView: Release Surfaces where SurfaceControl are released.
Following the same logic as the revision "Destroy SurfaceControl from RenderThread"
we have a similar race condition with the native object behind the mSurface object.
In addition that CL introduces a logic error...previously in positionLost we assumed
if mSurfaceControl != null then mSurface had not been released,
but now we release the Surface but wait on the RenderThread to release the SurfaceControl
when it tries to grab the frame number to create the deferred transaction the Surface
has already been released and we go on to crash. Releasing them all in the same place
fixes this.
Bug: 141525040
Test: go/wm-smoke
Change-Id: I7c938cd498a9260146f34f2d6e18744854d69946
Diffstat (limited to 'rs/java/android/renderscript/ProgramFragmentFixedFunction.java')
0 files changed, 0 insertions, 0 deletions