diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c | 7 | ||||
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c | 8 |
3 files changed, 22 insertions, 1 deletions
@@ -1,5 +1,13 @@ 2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at> + * 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 <twisti@complang.tuwien.ac.at> + * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license. * configure.ac: Added AX_FUNC_WHICH_GETHOSTBYNAME_R check. * m4/ax_func_which_gethostbyname_r.m4: New file. 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); } |