Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dddcd22b authored by Romain Guy's avatar Romain Guy
Browse files

Don't crash on Surface.unlockAndPost() but log & try again

Bug #6482593

Change-Id: Ib477b58e2b7a6cb19a87d05f2aa0448e04d82f7c
parent f26c8be0
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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();
            }

            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();