summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Thalinger <twisti@complang.tuwien.ac.at>2007-04-12 15:09:31 +0000
committerChristian Thalinger <twisti@complang.tuwien.ac.at>2007-04-12 15:09:31 +0000
commit1ddd4f243089a47bb51da4b63f6b61d2751e1ffe (patch)
treebfe4a93c13d3bf7d19619da8411651babde4c001
parent221dec5a0e640709a1099ea9a615a4a70f7c90b0 (diff)
downloadclasspath-1ddd4f243089a47bb51da4b63f6b61d2751e1ffe.tar.gz
2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at>gbenson-calendar-branchpoint
* 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.
-rw-r--r--ChangeLog8
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c7
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c8
3 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e9663c7f1..5562ed19c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}