summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorFilip Gruszczynski <gruszczy@google.com>2015-08-10 11:02:53 -0700
committerFilip Gruszczynski <gruszczy@google.com>2015-08-10 13:03:46 -0700
commit26ed265ceea18a42fddb95777c51a60063b0ef13 (patch)
treee0fed3adcbf6fe35f34248a7dbf1e5325fc6d11f /services
parentc52839277b8714d150a9fe276b6ba3fa8a0cbf38 (diff)
downloadframeworks_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.java4
-rw-r--r--services/core/java/com/android/server/wm/TaskStack.java3
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) {