summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2005-11-25 20:21:30 +0000
committerMark Wielaard <mark@klomp.org>2005-11-25 20:21:30 +0000
commit30484828457a39e78f8b524aa9592a86bc2e78eb (patch)
tree754c0bb62c1ae22003ba733cd3608490d9de0701
parent3715beec6aff1dc2cd349b524b077a6a2d8a5482 (diff)
downloadclasspath-30484828457a39e78f8b524aa9592a86bc2e78eb.tar.gz
Fixes bug #24981
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c (clipboard_targets_received): DeleteLocalRef of NewStringUTF. (clipboard_text_received): Likewise. (clipboard_uris_received): Likewise.
-rw-r--r--ChangeLog8
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c6
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 63ce13e00..e7dd11f37 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-11-25 Mark Wielaard <mark@klomp.org>
+
+ Fixes bug #24981
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+ (clipboard_targets_received): DeleteLocalRef of NewStringUTF.
+ (clipboard_text_received): Likewise.
+ (clipboard_uris_received): Likewise.
+
2005-11-25 Lillian Angel <langel@redhat.com>
* javax/swing/JList.java
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 f744e90ad..3244d2364 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
@@ -130,6 +130,7 @@ clipboard_targets_received (GtkClipboard *clipboard
break;
(*env)->SetObjectArrayElement (env, strings, i++,
string);
+ (*env)->DeleteLocalRef (env, string);
}
}
}
@@ -201,6 +202,10 @@ clipboard_text_received (GtkClipboard *clipboard
textAvailableID,
string);
(*env)->DeleteGlobalRef (env, selection_obj);
+
+ if (string != NULL)
+ (*env)->DeleteLocalRef (env, string);
+
}
JNIEXPORT void JNICALL
@@ -324,6 +329,7 @@ clipboard_uris_received (GtkClipboard *clipboard
if (string == NULL)
break;
(*env)->SetObjectArrayElement (env, strings, i, string);
+ (*env)->DeleteLocalRef (env, string);
}
}
g_strfreev (uris);