[Patch] native part of GdkPixbufDecoder merged
Michael Koch
konqueror@gmx.de
Fri May 6 06:11:00 GMT 2005
Hi list,
I just commited the attached patch to HEAD to merge the native part of
gnu.java.awt.peer.gtk.GdkPixbufDecoder again.
Michael
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.
-------------- next part --------------
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,v
retrieving revision 1.7
diff -u -r1.7 gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c 16 Feb 2005 20:03:21 -0000 1.7
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c 6 May 2005 06:09:59 -0000
@@ -206,6 +206,7 @@
jclass formatClass;
jmethodID addExtensionID;
jmethodID addMimeTypeID;
+ jobject string;
formatClass = (*env)->FindClass
(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec");
@@ -227,26 +228,33 @@
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;
}
}
More information about the Java-patches
mailing list