summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-01-20 18:21:58 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-26 10:27:38 +0100
commitb66690b5fe3312cfea987b91b5c1908510b6b68a (patch)
tree674afdf08dfd6a3704fb54d07db692f13c0776b9 /desktop
parent7aad6171faff31c5dc81e7477d5081f533b1b6fd (diff)
android: release local ref to string after callback exec. in JNI
Change-Id: I2a92a2beff214894ba63b3881a686337639a0b07
Diffstat (limited to 'desktop')
-rw-r--r--desktop/source/lib/lokandroid.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/desktop/source/lib/lokandroid.cxx b/desktop/source/lib/lokandroid.cxx
index cd3f6b5ea77d..02902222ef7b 100644
--- a/desktop/source/lib/lokandroid.cxx
+++ b/desktop/source/lib/lokandroid.cxx
@@ -117,12 +117,16 @@ void messageCallback(int nType, const char* pPayload, void* pData)
bIsAttached = true;
}
+ jstring sPayload = pEnv->NewStringUTF(pPayload);
+
jvalue aParameter[2];
aParameter[0].i = nType;
- aParameter[1].l = pEnv->NewStringUTF(pPayload);
+ aParameter[1].l = sPayload;
pEnv->CallVoidMethodA(pCallbackData->aObject, pCallbackData->aJavaCallbackMethod, aParameter);
+ pEnv->DeleteLocalRef(sPayload);
+
if (bIsAttached)
{
pJavaVM->DetachCurrentThread();