summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2015-03-23 14:00:47 -0700
committerCraig Mautner <cmautner@google.com>2015-03-23 14:00:47 -0700
commit00a6675461dda409869a1af56107506e24cf6f9e (patch)
tree898165d697b9054df9c7cbc25fd99ee561a8f2d9
parent356176177633a619f4a916248536e4e7a5fb9b2e (diff)
downloadframeworks_base-00a6675461dda409869a1af56107506e24cf6f9e.zip
frameworks_base-00a6675461dda409869a1af56107506e24cf6f9e.tar.gz
frameworks_base-00a6675461dda409869a1af56107506e24cf6f9e.tar.bz2
Add null check and call destroy from single point.
Ensure that calling destroy() on a DimLayer surface only happens once. Fixes bug 19660387. Change-Id: Iee8ea20b5d7c3a8f81f14a3ecff66a1dc1a8d719
-rw-r--r--services/core/java/com/android/server/wm/TaskStack.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
index 6d09f55..b61a6f7 100644
--- a/services/core/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -373,10 +373,8 @@ public class TaskStack {
mService.requestTraversalLocked();
}
- mAnimationBackgroundSurface.destroySurface();
- mAnimationBackgroundSurface = null;
- mDimLayer.destroySurface();
- mDimLayer = null;
+ close();
+
mDisplayContent = null;
}
@@ -501,8 +499,14 @@ public class TaskStack {
}
void close() {
- mDimLayer.mDimSurface.destroy();
- mAnimationBackgroundSurface.mDimSurface.destroy();
+ if (mAnimationBackgroundSurface != null) {
+ mAnimationBackgroundSurface.destroySurface();
+ mAnimationBackgroundSurface = null;
+ }
+ if (mDimLayer != null) {
+ mDimLayer.destroySurface();
+ mDimLayer = null;
+ }
}
public void dump(String prefix, PrintWriter pw) {