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

Commit fc563771 authored by Chris Craik's avatar Chris Craik
Browse files

Fix View leakage from mPreSortedChildren

bug:28553824

Change-Id: I62bfa3dcb121792dff7d00be1f4b018a99c96e1d
parent 08ca2e3a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1718,11 +1718,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                if (isTransformedTouchPointInView(x, y, child, point)) {
                    final PointerIcon pointerIcon = child.getPointerIcon(event, point.x, point.y);
                    if (pointerIcon != null) {
                        if (preorderedList != null) preorderedList.clear();
                        return pointerIcon;
                    }
                    break;
                }
            }
            if (preorderedList != null) preorderedList.clear();
        }

        // The pointer is not a child or the child has no preferences, returning the default
@@ -3028,6 +3030,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                        final ViewStructure cstructure = structure.newChild(i);
                        child.dispatchProvideStructure(cstructure);
                    }
                    if (preorderedList != null) preorderedList.clear();
                }
            }
        }
@@ -3619,6 +3622,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        if (mPreSortedChildren == null) {
            mPreSortedChildren = new ArrayList<>(childrenCount);
        } else {
            // callers should clear, so clear shouldn't be necessary, but for safety...
            mPreSortedChildren.clear();
            mPreSortedChildren.ensureCapacity(childrenCount);
        }