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

Commit 56ac2e24 authored by Beverly's avatar Beverly
Browse files

Make sure to cleanup views that couldn't be added

ie: due to BadTokenException or InvalidDisplayException

Previously, only views that were already in the viewhierarchy
before attempted to be re-added would be removed. This makes
sure if the view was newly added, it'll also be removed.
This prevents a memory leak of views.

Test: manually show and cancel multiple toasts,
check the hierachy viewer that no Toast views remain
Fixes: 234694098

Change-Id: I06bbae70c277d0615753edc9ec0a8e7439ad7020
parent f0e063d1
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -404,9 +404,10 @@ public final class WindowManagerGlobal {
            try {
                root.setView(view, wparams, panelParentView, userId);
            } catch (RuntimeException e) {
                final int viewIndex = findViewLocked(view, false);
                // BadTokenException or InvalidDisplayException, clean up.
                if (index >= 0) {
                    removeViewLocked(index, true);
                if (viewIndex >= 0) {
                    removeViewLocked(viewIndex, true);
                }
                throw e;
            }