diff options
author | Filip Gruszczynski <gruszczy@google.com> | 2015-08-10 11:02:53 -0700 |
---|---|---|
committer | Filip Gruszczynski <gruszczy@google.com> | 2015-08-10 13:03:46 -0700 |
commit | 26ed265ceea18a42fddb95777c51a60063b0ef13 (patch) | |
tree | e0fed3adcbf6fe35f34248a7dbf1e5325fc6d11f /services | |
parent | c52839277b8714d150a9fe276b6ba3fa8a0cbf38 (diff) | |
download | frameworks_base-26ed265ceea18a42fddb95777c51a60063b0ef13.zip frameworks_base-26ed265ceea18a42fddb95777c51a60063b0ef13.tar.gz frameworks_base-26ed265ceea18a42fddb95777c51a60063b0ef13.tar.bz2 |
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
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 4 | ||||
-rw-r--r-- | 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 5d6df26..4db0b1e 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 4545032..794b49c 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) { |