Merge "Don't crash on Surface.unlockAndPost() but log & try again Bug #6482593" into jb-dev
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 @@
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 @@
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();