diff options
| author | Romain Guy <romainguy@google.com> | 2013-06-21 14:07:07 -0700 |
|---|---|---|
| committer | Romain Guy <romainguy@google.com> | 2013-06-21 14:07:07 -0700 |
| commit | 27e0bf627883e7042384d34cf37fbedf276ff553 (patch) | |
| tree | 454d19813bef3f16cb3e6f073f447f3bcb3c069e /core/java/android/view/ViewRootImpl.java | |
| parent | 16ea8d373b03b1e115dd505af70dbee4e3a3a182 (diff) | |
Safely dispose of the resize buffer
We just ensure there is a valid EGL context before
we destroy the associated layer.
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 14 |
1 files changed, 9 insertions, 5 deletions
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(); } } } |
