diff --git a/libvlc/jni/libvlcjni-media.c b/libvlc/jni/libvlcjni-media.c index e9c1d1be115d9fd71c26ada45be7072618243728..0161db8a8dc9b72c7d25cde7955e0f567d03019f 100644 --- a/libvlc/jni/libvlcjni-media.c +++ b/libvlc/jni/libvlcjni-media.c @@ -535,6 +535,7 @@ tracklist_to_jobjectArray(JNIEnv *env, libvlc_media_tracklist_t *tracklist) jobject jtrack = media_track_to_jobject(env, track); (*env)->SetObjectArrayElement(env, array, i, jtrack); + (*env)->DeleteLocalRef(env, jtrack); } return array; @@ -712,6 +713,7 @@ Java_org_videolan_libvlc_Media_nativeGetSlaves(JNIEnv *env, jobject thiz) p_slave->i_type, p_slave->i_priority, juri); (*env)->SetObjectArrayElement(env, array, i, jslave); + (*env)->DeleteLocalRef(env, jslave); (*env)->DeleteLocalRef(env, juri); } diff --git a/libvlc/jni/libvlcjni-mediadiscoverer.c b/libvlc/jni/libvlcjni-mediadiscoverer.c index f42c3c904626dc3fdef1e1add8f6813c501af965..899df5942701983cafd42c3f678b5f526cd902b0 100644 --- a/libvlc/jni/libvlcjni-mediadiscoverer.c +++ b/libvlc/jni/libvlcjni-mediadiscoverer.c @@ -139,6 +139,7 @@ Java_org_videolan_libvlc_MediaDiscoverer_nativeList(JNIEnv *env, jobject thiz, jobject jservice = service_to_object(env, pp_services[i]); (*env)->SetObjectArrayElement(env, array, i, jservice); + (*env)->DeleteLocalRef(env, jservice); } error: diff --git a/libvlc/jni/libvlcjni-mediaplayer.c b/libvlc/jni/libvlcjni-mediaplayer.c index 51a2bfc6dac53ab01cf6d145cbfcc6113f1e38e4..4e1538eeadb6ea53dbe10223e578094b9372b16b 100644 --- a/libvlc/jni/libvlcjni-mediaplayer.c +++ b/libvlc/jni/libvlcjni-mediaplayer.c @@ -658,7 +658,10 @@ Java_org_videolan_libvlc_MediaPlayer_nativeGetTitles(JNIEnv *env, jobject thiz) jobject jtitle = mediaplayer_title_to_object(env, pp_titles[i]); if (jtitle) + { (*env)->SetObjectArrayElement(env, array, i, jtitle); + (*env)->DeleteLocalRef(env, jtitle); + } } error: @@ -719,7 +722,10 @@ Java_org_videolan_libvlc_MediaPlayer_nativeGetChapters(JNIEnv *env, jobject jchapter = mediaplayer_chapter_to_object(env, pp_chapters[i]); if (jchapter) + { (*env)->SetObjectArrayElement(env, array, i, jchapter); + (*env)->DeleteLocalRef(env, jchapter); + } } error: diff --git a/libvlc/jni/libvlcjni-rendererdiscoverer.c b/libvlc/jni/libvlcjni-rendererdiscoverer.c index aa3e6cc57ec84d87aa93f3891bb64f9fc78b24eb..85057070692ed931c8b8064e006745a28a85ee95 100644 --- a/libvlc/jni/libvlcjni-rendererdiscoverer.c +++ b/libvlc/jni/libvlcjni-rendererdiscoverer.c @@ -188,6 +188,7 @@ Java_org_videolan_libvlc_RendererDiscoverer_nativeList(JNIEnv *env, jobject thiz jobject jservice = service_to_object(env, pp_services[i]); (*env)->SetObjectArrayElement(env, array, i, jservice); + (*env)->DeleteLocalRef(env, jservice); } error: