Fix synchronization in updateImeTargetWindow

Use lock before accessing Window map and calling
DC.updateImeControlTarget().

Change-Id: I363e3a96fc6041df9b25c649de6bda0a70d40857
Fix: 149491593
Bug: 111084606
Test: atest CtsInputMethodTestCases
This commit is contained in:
Tarandeep Singh
2020-02-13 11:52:43 -08:00
parent b0f1fe887a
commit 684078890e

View File

@@ -7317,9 +7317,11 @@ public class WindowManagerService extends IWindowManager.Stub
Slog.w(TAG_WM, "updateInputMethodTargetWindow: imeToken=" + imeToken
+ " imeTargetWindowToken=" + imeTargetWindowToken);
}
final WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
if (imeTarget != null) {
imeTarget.getDisplayContent().updateImeControlTarget(imeTarget);
synchronized (mGlobalLock) {
final WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
if (imeTarget != null) {
imeTarget.getDisplayContent().updateImeControlTarget(imeTarget);
}
}
}