I fixed a problem with the allocator in the new Gnome that showed up in
GdkFontPeer.c (causing crash when running GdkGraphics2D in the new
Gnome). We used to g_free() an object that has been created by Pango.
This object is actually a PangoItem and should therefore be freed by
pango_item_free() instead.

2006-04-03  Roman Kennke  <[EMAIL PROTECTED]>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
        (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
        Replaced g_free() with pango_item_free() to avoid problems
        with the allocator.

/Roman

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
===================================================================
RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,v
retrieving revision 1.14
diff -u -1 -0 -r1.14 gnu_java_awt_peer_gtk_GdkFontPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c	16 Mar 2006 22:21:17 -0000	1.14
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c	3 Apr 2006 09:58:01 -0000
@@ -210,24 +210,24 @@
 	      x += geom->width;
 	    }
 	  (*env)->ReleaseDoubleArrayElements (env, java_extents, native_extents, 0);
 	  (*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
 	}
 
       pango_glyph_string_free (glyphs);
     }
 
   (*env)->ReleaseStringUTFChars (env, chars, str);
-  
+
   for (i = g_list_first (items); i != NULL; i = g_list_next (i))
-    g_free (i->data);
-  
+    pango_item_free(i->data);
+
   g_list_free (items);
 
   gdk_threads_leave ();
 
   return (*env)->NewObject (env, 
 			    glyphVector_class, 
 			    glyphVector_ctor, 
 			    java_extents, java_codes,
 			    font, fontRenderContext);
 }

Reply via email to