aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorArchie Cobbs <archie@dellroad.org>2005-05-06 06:10:18 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2005-05-06 06:10:18 +0000
commit8108f99852f34a6b82184cff8fdb7640be46872b (patch)
treeba34c55df46431d541bf458ab729a785d41d2313 /libjava
parent9b8d7b425267df5fb5fa7f257560848c0ba0c246 (diff)
downloadgcc-8108f99852f34a6b82184cff8fdb7640be46872b.zip
gcc-8108f99852f34a6b82184cff8fdb7640be46872b.tar.gz
gcc-8108f99852f34a6b82184cff8fdb7640be46872b.tar.bz2
gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: use DeleteLocalRef() to avoid exhausting local native references.
2005-05-06 Archie Cobbs <archie@dellroad.org> * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: use DeleteLocalRef() to avoid exhausting local native references. From-SVN: r99302
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c20
2 files changed, 19 insertions, 6 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index d40a594..fd3ba76 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-06 Archie Cobbs <archie@dellroad.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:
+ use DeleteLocalRef() to avoid exhausting local native references.
+
2005-05-06 Mark Wielaard <mark@klomp.org>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
index 0727999..535e990 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
@@ -206,6 +206,7 @@ query_formats (JNIEnv *env, jclass clazz)
jclass formatClass;
jmethodID addExtensionID;
jmethodID addMimeTypeID;
+ jobject string;
formatClass = (*env)->FindClass
(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec");
@@ -227,26 +228,33 @@ query_formats (JNIEnv *env, jclass clazz)
format = (GdkPixbufFormat *) f->data;
name = gdk_pixbuf_format_get_name(format);
+ string = (*env)->NewStringUTF(env, name);
+ g_assert(string != NULL);
+
jformat = (*env)->CallStaticObjectMethod
- (env, clazz, registerFormatID,
- (*env)->NewStringUTF(env, name),
+ (env, clazz, registerFormatID, string,
(jboolean) gdk_pixbuf_format_is_writable(format));
+ (*env)->DeleteLocalRef(env, string);
g_assert(jformat != NULL);
ch = gdk_pixbuf_format_get_extensions(format);
while (*ch)
{
- (*env)->CallVoidMethod (env, jformat, addExtensionID,
- (*env)->NewStringUTF(env, *ch));
+ string = (*env)->NewStringUTF(env, *ch);
+ g_assert(string != NULL);
+ (*env)->CallVoidMethod (env, jformat, addExtensionID, string);
+ (*env)->DeleteLocalRef(env, string);
++ch;
}
ch = gdk_pixbuf_format_get_mime_types(format);
while (*ch)
{
- (*env)->CallVoidMethod (env, jformat, addMimeTypeID,
- (*env)->NewStringUTF(env, *ch));
+ string = (*env)->NewStringUTF(env, *ch);
+ g_assert(string != NULL);
+ (*env)->CallVoidMethod (env, jformat, addMimeTypeID, string);
+ (*env)->DeleteLocalRef(env, string);
++ch;
}
}