diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index f603ef7901c77..70ec2d42b59ba 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -877,6 +877,10 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall synchronized (mSurfaceControlLock) { mSurface.release(); + if (mBlastBufferQueue != null) { + mBlastBufferQueue.destroy(); + mBlastBufferQueue = null; + } if (mRtHandlingPositionUpdates) { mRtReleaseSurfaces = true; @@ -901,10 +905,6 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall transaction.remove(mBlastSurfaceControl); mBlastSurfaceControl = null; } - if (mBlastBufferQueue != null) { - mBlastBufferQueue.destroy(); - mBlastBufferQueue = null; - } } private boolean performSurfaceTransaction(ViewRootImpl viewRoot, Translator translator,