diff options
author | George Mount <mount@google.com> | 2014-09-29 16:56:22 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2014-09-29 17:10:24 -0700 |
commit | 50ac6cb9820da352bd5e89596b17561878e969cc (patch) | |
tree | 115e0820b452d473f1f371dcde82135c298a59e0 /core/java/android | |
parent | 39838b98f1fef11ff29bf682029331849a39a633 (diff) | |
download | frameworks_base-50ac6cb9820da352bd5e89596b17561878e969cc.zip frameworks_base-50ac6cb9820da352bd5e89596b17561878e969cc.tar.gz frameworks_base-50ac6cb9820da352bd5e89596b17561878e969cc.tar.bz2 |
Clear preordered list after use.
Bug 17671834
Bug 17697944
Change-Id: I0ba46f32661869db0c925b00342211ea543e2f88
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/view/GhostView.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/core/java/android/view/GhostView.java b/core/java/android/view/GhostView.java index 50c927a..20baad0 100644 --- a/core/java/android/view/GhostView.java +++ b/core/java/android/view/GhostView.java @@ -324,19 +324,27 @@ public class GhostView extends View { final ArrayList<View> preorderedList = parent.buildOrderedChildList(); final boolean customOrder = preorderedList == null && parent.isChildrenDrawingOrderEnabled(); + + // This default value shouldn't be used because both view and comparedWith + // should be in the list. If there is an error, then just return an arbitrary + // view is on top. + boolean isOnTop = true; for (int i = 0; i < childrenCount; i++) { int childIndex = customOrder ? parent.getChildDrawingOrder(childrenCount, i) : i; final View child = (preorderedList == null) ? parent.getChildAt(childIndex) : preorderedList.get(childIndex); if (child == view) { - return false; + isOnTop = false; + break; } else if (child == comparedWith) { - return true; + isOnTop = true; + break; } } - // Shouldn't get here. Neither of the children is in the parent. - // Just return an arbitrary one. - return true; + if (preorderedList != null) { + preorderedList.clear(); + } + return isOnTop; } } |