From 27e0bf627883e7042384d34cf37fbedf276ff553 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Fri, 21 Jun 2013 14:07:07 -0700 Subject: Safely dispose of the resize buffer We just ensure there is a valid EGL context before we destroy the associated layer. --- core/java/android/view/ViewRootImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'core/java/android/view/ViewRootImpl.java') diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index e62abbe5ec57..9bc66be3c93e 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -923,9 +923,14 @@ public final class ViewRootImpl implements ViewParent, } void disposeResizeBuffer() { - if (mResizeBuffer != null) { - mResizeBuffer.destroy(); - mResizeBuffer = null; + if (mResizeBuffer != null && mAttachInfo.mHardwareRenderer != null) { + mAttachInfo.mHardwareRenderer.safelyRun(new Runnable() { + @Override + public void run() { + mResizeBuffer.destroy(); + mResizeBuffer = null; + } + }); } } @@ -1466,8 +1471,7 @@ public final class ViewRootImpl implements ViewParent, if (mResizeBuffer != null) { mResizeBuffer.end(hwRendererCanvas); if (!completed) { - mResizeBuffer.destroy(); - mResizeBuffer = null; + disposeResizeBuffer(); } } } -- cgit v1.2.3