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); }