From 1ddd4f243089a47bb51da4b63f6b61d2751e1ffe Mon Sep 17 00:00:00 2001 From: Christian Thalinger Date: Thu, 12 Apr 2007 15:09:31 +0000 Subject: 2007-04-12 Christian Thalinger * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c (clipboard_get_func): Call DeleteLocalRef. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c (clipboard_targets_received): Likewise. (clipboard_uris_received): Likewise. --- ChangeLog | 8 ++++++++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c | 7 ++++++- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e9663c7f1..5562ed19c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-04-12 Christian Thalinger + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c + (clipboard_get_func): Call DeleteLocalRef. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c + (clipboard_targets_received): Likewise. + (clipboard_uris_received): Likewise. + 2007-04-12 Christian Thalinger * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license. diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c index 7ce1185a4..0b076f864 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c @@ -193,6 +193,7 @@ clipboard_get_func (GtkClipboard *clipboard, gtk_clipboard_instance, provideContentID, target_string); + (*env)->DeleteLocalRef(env, target_string); if (bytes == NULL) return; len = (*env)->GetArrayLength(env, bytes); @@ -273,9 +274,13 @@ clipboard_get_func (GtkClipboard *clipboard, break; text = (*env)->GetStringUTFChars (env, uri, NULL); if (text == NULL) - break; + { + (*env)->DeleteLocalRef(env, uri); + break; + } list[i] = strdup (text); (*env)->ReleaseStringUTFChars (env, uri, text); + (*env)->DeleteLocalRef(env, uri); } if (i == count) diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c index be03c4525..e5ba4c7b1 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c @@ -105,6 +105,8 @@ clipboard_targets_received (GtkClipboard *clipboard stringClass = (*env)->FindClass (env, "java/lang/String"); strings = (*env)->NewObjectArray (env, strings_len, stringClass, NULL); + (*env)->DeleteLocalRef(env, stringClass); + if (strings != NULL) { if (include_text) @@ -133,6 +135,8 @@ clipboard_targets_received (GtkClipboard *clipboard (*env)->DeleteLocalRef (env, string); } } + + (*env)->DeleteLocalRef(env, strings); } for (i = 0; i < targets_len; i++) @@ -341,6 +345,8 @@ clipboard_uris_received (GtkClipboard *clipboard len++; strings = (*env)->NewObjectArray (env, len, stringClass, NULL); + (*env)->DeleteLocalRef(env, stringClass); + if (strings != NULL) { for (i = 0; i < len; i++) @@ -351,6 +357,8 @@ clipboard_uris_received (GtkClipboard *clipboard (*env)->SetObjectArrayElement (env, strings, i, string); (*env)->DeleteLocalRef (env, string); } + + (*env)->DeleteLocalRef(env, strings); } g_strfreev (uris); } -- cgit v1.2.1