[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