Loading services/core/java/com/android/server/input/InputManagerService.java +2 −13 Original line number Diff line number Diff line Loading @@ -3230,7 +3230,7 @@ public class InputManagerService extends IInputManager.Stub * Interface for the system to handle request from InputMonitors. */ private final class InputMonitorHost extends IInputMonitorHost.Stub { private IBinder mToken; private final IBinder mToken; InputMonitorHost(IBinder token) { mToken = token; Loading @@ -3238,23 +3238,12 @@ public class InputManagerService extends IInputManager.Stub @Override public void pilferPointers() { if (mToken == null) { throw new IllegalStateException( "Illegal call to pilferPointers after InputMonitorHost is disposed."); } nativePilferPointers(mPtr, mToken); } @Override public void dispose() { // We do not remove the input monitor here by calling nativeRemoveInputChannel because // it causes a race in InputDispatcher between the removal of the InputChannel through // that call and the InputChannel#dispose call (which causes an FD hangup) from the // client (b/189135695). // // NOTE: This means the client is responsible for properly closing the InputMonitor by // disposing the InputChannel and all its duplicates. mToken = null; nativeRemoveInputChannel(mPtr, mToken); } } Loading Loading
services/core/java/com/android/server/input/InputManagerService.java +2 −13 Original line number Diff line number Diff line Loading @@ -3230,7 +3230,7 @@ public class InputManagerService extends IInputManager.Stub * Interface for the system to handle request from InputMonitors. */ private final class InputMonitorHost extends IInputMonitorHost.Stub { private IBinder mToken; private final IBinder mToken; InputMonitorHost(IBinder token) { mToken = token; Loading @@ -3238,23 +3238,12 @@ public class InputManagerService extends IInputManager.Stub @Override public void pilferPointers() { if (mToken == null) { throw new IllegalStateException( "Illegal call to pilferPointers after InputMonitorHost is disposed."); } nativePilferPointers(mPtr, mToken); } @Override public void dispose() { // We do not remove the input monitor here by calling nativeRemoveInputChannel because // it causes a race in InputDispatcher between the removal of the InputChannel through // that call and the InputChannel#dispose call (which causes an FD hangup) from the // client (b/189135695). // // NOTE: This means the client is responsible for properly closing the InputMonitor by // disposing the InputChannel and all its duplicates. mToken = null; nativeRemoveInputChannel(mPtr, mToken); } } Loading