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

Commit 001e55a1 authored by Robert Carr's avatar Robert Carr
Browse files

ViewRootImpl: Guard against null in performMeasure

In particular we are seeing this in the call sites from performTraversals
in monkey crashes. I don't have exact repro but it seems like a feasible
state to get in to...for example...WindowManagerGlobal#addView can trigger
removal of a dying view immediately without respect for the mIsInTraversal
flag when it calls doDie(). This means we can dispatch detached from window
setting mView == null while performing a traversal. There's some question
about why this doDie is even required but...seems a little nerve wrecking
to change at the moment and it seems best to just guard against null for now.

Test: Monkeys will test.
Bug: 37343098
Change-Id: I94f2569c1ef70819c083f2b2b34b59622e6c6260
parent ef090ac3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2410,6 +2410,9 @@ public final class ViewRootImpl implements ViewParent,
    }

    private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) {
        if (mView == null) {
            return;
        }
        Trace.traceBegin(Trace.TRACE_TAG_VIEW, "measure");
        try {
            mView.measure(childWidthMeasureSpec, childHeightMeasureSpec);