summaryrefslogtreecommitdiffstats
path: root/services/core/java
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-01-10 21:32:21 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-10 21:32:21 +0000
commitd4abbb964b6153ab19a9366c1168f4794b618594 (patch)
treea973f810a9e30e0bc2b14c809a6d71149be270b0 /services/core/java
parent291d64685dd05f76deaf210a75d2d06c153f4b39 (diff)
parent93884a5b35ec97a0f44795950363188d9a21137a (diff)
downloadframeworks_base-d4abbb964b6153ab19a9366c1168f4794b618594.zip
frameworks_base-d4abbb964b6153ab19a9366c1168f4794b618594.tar.gz
frameworks_base-d4abbb964b6153ab19a9366c1168f4794b618594.tar.bz2
am 93884a5b: Fix invalid stackId bug.
* commit '93884a5b35ec97a0f44795950363188d9a21137a': Fix invalid stackId bug.
Diffstat (limited to 'services/core/java')
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java30
1 files changed, 8 insertions, 22 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index f22eef1..ca8ff1e 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -4815,27 +4815,20 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
- public void createStack(int stackId, int displayId) {
- mH.sendMessage(mH.obtainMessage(H.CREATE_STACK, stackId, displayId));
- }
-
/**
- * Create a new TaskStack and place it next to an existing stack.
+ * Create a new TaskStack and place it on a DisplayContent.
* @param stackId The unique identifier of the new stack.
+ * @param displayId The unique identifier of the DisplayContent.
*/
- private void createStackLocked(int stackId, int displayId) {
+ public void createStack(int stackId, int displayId) {
final long origId = Binder.clearCallingIdentity();
try {
synchronized (mWindowMap) {
- final int numDisplays = mDisplayContents.size();
- for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
- if (displayContent.getDisplayId() == displayId) {
- TaskStack stack = displayContent.createStack(stackId);
- mStackIdToStack.put(stackId, stack);
- performLayoutAndPlaceSurfacesLocked();
- return;
- }
+ final DisplayContent displayContent = mDisplayContents.get(displayId);
+ if (displayContent != null) {
+ TaskStack stack = displayContent.createStack(stackId);
+ mStackIdToStack.put(stackId, stack);
+ performLayoutAndPlaceSurfacesLocked();
}
}
} finally {
@@ -7051,8 +7044,6 @@ public class WindowManagerService extends IWindowManager.Stub
public static final int REMOVE_STARTING_TIMEOUT = 33;
- public static final int CREATE_STACK = 34;
-
@Override
public void handleMessage(Message msg) {
if (DEBUG_WINDOW_TRACE) {
@@ -7490,11 +7481,6 @@ public class WindowManagerService extends IWindowManager.Stub
} catch (RemoteException e) {
}
break;
- case CREATE_STACK:
- synchronized (mWindowMap) {
- createStackLocked(msg.arg1, msg.arg2);
- }
- break;
}
if (DEBUG_WINDOW_TRACE) {
Slog.v(TAG, "handleMessage: exit");