From 26ed265ceea18a42fddb95777c51a60063b0ef13 Mon Sep 17 00:00:00 2001 From: Filip Gruszczynski Date: Mon, 10 Aug 2015 11:02:53 -0700 Subject: [PATCH] When closing task stack remove reference to display content. This tightens the guarantee that detached stack won't be used. We also add logging to detecting a situation where a stack not belonging to a display is being moved on that display. Bug: 22191609 Change-Id: Ia674bb5960018104a56c5138775ab5216906675b --- services/core/java/com/android/server/wm/DisplayContent.java | 4 +++- services/core/java/com/android/server/wm/TaskStack.java | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 5d6df2679b81..4db0b1ee5122 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -203,7 +203,9 @@ class DisplayContent { } void moveStack(TaskStack stack, boolean toTop) { - mStacks.remove(stack); + if (!mStacks.remove(stack)) { + Slog.wtf(TAG, "moving stack that was not added: " + stack, new Throwable()); + } mStacks.add(toTop ? mStacks.size() : 0, stack); } diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 45450320828b..794b49c8cb19 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -385,8 +385,6 @@ public class TaskStack { } close(); - - mDisplayContent = null; } void resetAnimationBackgroundAnimator() { @@ -518,6 +516,7 @@ public class TaskStack { mDimLayer.destroySurface(); mDimLayer = null; } + mDisplayContent = null; } public void dump(String prefix, PrintWriter pw) { -- 2.11.0