diff options
| author | Henrik Baard <henrik.baard@sonymobile.com> | 2010-07-20 11:42:19 +0200 |
|---|---|---|
| committer | Henrik Baard <henrik.baard@sonymobile.com> | 2013-08-11 10:23:59 +0200 |
| commit | 857cdff07862b34d6f5f1815dec1d1e509594e35 (patch) | |
| tree | 27ef1fd26fc1beb1e378e982bc773aab8ffa53a9 /core/java/android/inputmethodservice/IInputMethodSessionWrapper.java | |
| parent | 523db46f6981a40e12007dbbe629bbdc47f861ba (diff) | |
Memory leak in IInputMethodSessionWrapper executeMessage
In some cases the executeMessage is called with
mInputMethodSession == null. For the messages
DO_UPDATE_SELECTION, DO_APP_PRIVATE_COMMAND
memory is leaked. This commit recycles the args freeing
the allocated memory.
Diffstat (limited to 'core/java/android/inputmethodservice/IInputMethodSessionWrapper.java')
| -rw-r--r-- | core/java/android/inputmethodservice/IInputMethodSessionWrapper.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java index 726dcec92eb5..bbea8ffa4334 100644 --- a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java @@ -75,7 +75,15 @@ class IInputMethodSessionWrapper extends IInputMethodSession.Stub @Override public void executeMessage(Message msg) { if (mInputMethodSession == null) { - // The session has been finished. + // The session has been finished. Args needs to be recycled + // for cases below. + switch (msg.what) { + case DO_UPDATE_SELECTION: + case DO_APP_PRIVATE_COMMAND: { + SomeArgs args = (SomeArgs)msg.obj; + args.recycle(); + } + } return; } |
