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