summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewRootImpl.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index d9e3545..90179ff 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2257,7 +2257,7 @@ public final class ViewRootImpl implements ViewParent,
mLayoutRequested = true; // ask wm for a new surface next time.
return false;
} catch (IllegalArgumentException e) {
- Log.e(TAG, "IllegalArgumentException locking surface", e);
+ Log.e(TAG, "Could not lock surface", e);
// Don't assume this is due to out of memory, it could be
// something else, and if it is something else then we could
// kill stuff (or ourself) for no reason.
@@ -2343,7 +2343,14 @@ public final class ViewRootImpl implements ViewParent,
unlockCanvasAndPostStartTime = System.nanoTime();
}
- surface.unlockCanvasAndPost(canvas);
+ try {
+ surface.unlockCanvasAndPost(canvas);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Could not unlock surface", e);
+ mLayoutRequested = true; // ask wm for a new surface next time.
+ //noinspection ReturnInsideFinallyBlock
+ return false;
+ }
if (ViewDebug.DEBUG_LATENCY) {
long now = System.nanoTime();