diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-20 18:21:58 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-26 10:27:38 +0100 |
commit | b66690b5fe3312cfea987b91b5c1908510b6b68a (patch) | |
tree | 674afdf08dfd6a3704fb54d07db692f13c0776b9 /desktop | |
parent | 7aad6171faff31c5dc81e7477d5081f533b1b6fd (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.cxx | 6 |
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(); |