summaryrefslogtreecommitdiff
path: root/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java
diff options
context:
space:
mode:
authorHenrik Baard <henrik.baard@sonymobile.com>2010-07-20 11:42:19 +0200
committerHenrik Baard <henrik.baard@sonymobile.com>2013-08-11 10:23:59 +0200
commit857cdff07862b34d6f5f1815dec1d1e509594e35 (patch)
tree27ef1fd26fc1beb1e378e982bc773aab8ffa53a9 /core/java/android/inputmethodservice/IInputMethodSessionWrapper.java
parent523db46f6981a40e12007dbbe629bbdc47f861ba (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.java10
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;
}