Hi all,

here a patchlet which needs a review.

The first one seems obvious, the others are maybe looking for a more elegant way.

Ideas?

Here it saves in a little app around 400 bytes, yes I know, not much....

Thanks,

Andreas

2006-08-11  Andreas Tobler  <[EMAIL PROTECTED]>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
        (query_formats): g_free 'name' after usage.
        g_strfreev 'ch', the gdk_pixbuf_format_get_extensions instance.
        g_strfreev 'ch', the gdk_pixbuf_format_get_mime_types instance.

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,v
retrieving revision 1.23
diff -u -r1.23 gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c        11 Jun 
2006 22:02:14 -0000      1.23
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c        11 Aug 
2006 21:36:26 -0000
@@ -210,7 +210,8 @@
   jobject jformat;
   GSList *formats, *f;
   GdkPixbufFormat *format;
-  char **ch, *name;
+  gchar **ch, *name;
+  gint count;
 
   jclass formatClass;
   jmethodID addExtensionID;
@@ -240,14 +241,16 @@
       string = (*env)->NewStringUTF(env, name);
       g_assert(string != NULL);
 
-      jformat = (*env)->CallStaticObjectMethod 
+      jformat = (*env)->CallStaticObjectMethod
        (env, clazz, registerFormatID, string,
         (jboolean) gdk_pixbuf_format_is_writable(format));
       (*env)->DeleteLocalRef(env, string);
+      g_free(name);
 
       g_assert(jformat != NULL);
-      
+
       ch = gdk_pixbuf_format_get_extensions(format);
+      count = 0;
       while (*ch)
        {
          string = (*env)->NewStringUTF(env, *ch);
@@ -255,9 +258,12 @@
          (*env)->CallVoidMethod (env, jformat, addExtensionID, string);
          (*env)->DeleteLocalRef(env, string);
          ++ch;
+         ++count;
        }
-      
+      g_strfreev(ch - count);
+
       ch = gdk_pixbuf_format_get_mime_types(format);
+      count = 0;
       while (*ch)
        {
          string = (*env)->NewStringUTF(env, *ch);
@@ -265,12 +271,13 @@
          (*env)->CallVoidMethod (env, jformat, addMimeTypeID, string);
          (*env)->DeleteLocalRef(env, string);
          ++ch;
+         ++count;
        }
-
+      g_strfreev(ch - count);
       (*env)->DeleteLocalRef(env, jformat);
     }
-  
-  g_slist_free(formats);  
+
+  g_slist_free(formats);
 }
 
 

Reply via email to