diff options
author | Craig Mautner <cmautner@google.com> | 2014-01-10 21:32:21 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-01-10 21:32:21 +0000 |
commit | d4abbb964b6153ab19a9366c1168f4794b618594 (patch) | |
tree | a973f810a9e30e0bc2b14c809a6d71149be270b0 /services/core/java | |
parent | 291d64685dd05f76deaf210a75d2d06c153f4b39 (diff) | |
parent | 93884a5b35ec97a0f44795950363188d9a21137a (diff) | |
download | frameworks_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.java | 30 |
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"); |