diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-22 12:52:16 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-22 12:52:16 +0200 |
commit | 8c474ddd4999883749b987b2d4b4c70f00ebd94d (patch) | |
tree | c6602732cad5bf09c73b991b6ee8dc9548df924c /platform/android/tts_android.cpp | |
parent | 4b6629978e8d1be15c5e3bc74db55900fa40f52e (diff) | |
parent | f291a4ed3a64dd95bf8136f352e5d0554ada4a7c (diff) | |
download | redot-engine-8c474ddd4999883749b987b2d4b4c70f00ebd94d.tar.gz |
Merge pull request #90710 from m4gr3d/fix_jstring_leaks
Fix leakage of JNI object references
Diffstat (limited to 'platform/android/tts_android.cpp')
-rw-r--r-- | platform/android/tts_android.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/platform/android/tts_android.cpp b/platform/android/tts_android.cpp index 93517d8045..be85e47972 100644 --- a/platform/android/tts_android.cpp +++ b/platform/android/tts_android.cpp @@ -77,6 +77,14 @@ void TTS_Android::setup(jobject p_tts) { } } +void TTS_Android::terminate() { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL(env); + + env->DeleteGlobalRef(cls); + env->DeleteGlobalRef(tts); +} + void TTS_Android::_java_utterance_callback(int p_event, int p_id, int p_pos) { ERR_FAIL_COND_MSG(!initialized, "Enable the \"audio/general/text_to_speech\" project setting to use text-to-speech."); if (ids.has(p_id)) { @@ -170,6 +178,8 @@ void TTS_Android::speak(const String &p_text, const String &p_voice, int p_volum jstring jStrT = env->NewStringUTF(p_text.utf8().get_data()); jstring jStrV = env->NewStringUTF(p_voice.utf8().get_data()); env->CallVoidMethod(tts, _speak, jStrT, jStrV, CLAMP(p_volume, 0, 100), CLAMP(p_pitch, 0.f, 2.f), CLAMP(p_rate, 0.1f, 10.f), p_utterance_id, p_interrupt); + env->DeleteLocalRef(jStrT); + env->DeleteLocalRef(jStrV); } } |