From 0f825450d32e6d027717d902d236fabde86620fa Mon Sep 17 00:00:00 2001 From: Mia Alexiou Date: Wed, 15 Aug 2018 22:15:35 +0100 Subject: [PATCH] Release JNI string chars after use --- app/src/main/cpp/https-bloom-lib.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/cpp/https-bloom-lib.cpp b/app/src/main/cpp/https-bloom-lib.cpp index 672e9848694f..0af60c87afa5 100644 --- a/app/src/main/cpp/https-bloom-lib.cpp +++ b/app/src/main/cpp/https-bloom-lib.cpp @@ -24,6 +24,7 @@ Java_com_duckduckgo_app_httpsupgrade_BloomFilter_createBloomFilterFromFile(JNIEn const char *pathChars = env->GetStringUTFChars(path, &isElementCopy); BloomFilter* filter = new BloomFilter(pathChars, maxItems); + env->ReleaseStringUTFChars(path, pathChars); return (long) filter; } @@ -50,6 +51,8 @@ Java_com_duckduckgo_app_httpsupgrade_BloomFilter_add(JNIEnv *env, BloomFilter *filter = (BloomFilter *) pointer; filter->add(elementChars); + + env->ReleaseStringUTFChars(element, elementChars); } extern "C" @@ -63,5 +66,7 @@ Java_com_duckduckgo_app_httpsupgrade_BloomFilter_contains(JNIEnv *env, const char *elementChars = env->GetStringUTFChars(element, &isElementCopy); BloomFilter *filter = (BloomFilter *) pointer; - return filter->contains(elementChars); + bool containsElement = filter->contains(elementChars); + env->ReleaseStringUTFChars(element, elementChars); + return containsElement; } \ No newline at end of file