summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2013-06-21 14:07:07 -0700
committerRomain Guy <romainguy@google.com>2013-06-21 14:07:07 -0700
commit27e0bf627883e7042384d34cf37fbedf276ff553 (patch)
tree454d19813bef3f16cb3e6f073f447f3bcb3c069e /core/java/android/view/ViewRootImpl.java
parent16ea8d373b03b1e115dd505af70dbee4e3a3a182 (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.java14
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();
}
}
}