Remove synchronization from getCurrentInputMethodSubtype()
getCurrentInputMethodSubtype() acquires InputManagerService.mMethodMap within its body. There seems to be no reason for holding InputMethodManager.mH to call getCurrentInputMethodSubtype(). Holding mH can cause potential deadlock b/w two threads acquiring mH and mMethodMap in different orders. Bug: 31247871 Bug: 31273203 Bug: b.android.com/218423 Change-Id: I20cf2c20f49b1b02c0f7a18257b49d4bcc081b5d
This commit is contained in:
committed by
Yohei Yukawa
parent
b5cc0b55e3
commit
d33c07550f
@@ -2056,14 +2056,12 @@ public final class InputMethodManager {
|
|||||||
* have any input method subtype.
|
* have any input method subtype.
|
||||||
*/
|
*/
|
||||||
public InputMethodSubtype getCurrentInputMethodSubtype() {
|
public InputMethodSubtype getCurrentInputMethodSubtype() {
|
||||||
synchronized (mH) {
|
|
||||||
try {
|
try {
|
||||||
return mService.getCurrentInputMethodSubtype();
|
return mService.getCurrentInputMethodSubtype();
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Switch to a new input method subtype of the current input method.
|
* Switch to a new input method subtype of the current input method.
|
||||||
|
|||||||
Reference in New Issue
Block a user