GNOME Bugzilla – Bug 675241
font viewer fails to show sample view on some fonts
Last modified: 2012-05-01 18:48:08 UTC
I have at least some fonts that when shown in the sample view, causes this warning (which makes the widget not draw correctly): Gtk-WARNING **: drawing failure for widget `SushiFontWidget': invalid matrix (not invertible) (gdb) where
+ Trace 230158
The font in question is: (gdb) frame 1 (gdb) p ((SushiFontWidget*)widget)->priv->uri $9 = (gchar *) 0x82de690 "file:///usr/share/fonts/zvbi/caption.pcf.gz"
Thanks, I now pushed a fix for this to git master.
Unfortunately it's still reproducible, with Caption Italic this time, and only on every 2nd or 3rd time I click on that font in the overview. These valgrind warnings appeared, they might be related: ==4289== Invalid read of size 4 ==4289== at 0x804EFE4: sushi_font_widget_size_request (sushi-font-widget.c:325) ==4289== by 0x804F76A: sushi_font_widget_get_preferred_width (sushi-font-widget.c:395) ==4289== by 0x42FB922: compute_size_for_orientation (gtksizerequest.c:349) ==4289== by 0x42FBFC8: gtk_widget_get_preferred_width (gtksizerequest.c:542) ==4289== by 0x43E4368: gtk_viewport_get_preferred_size (gtkviewport.c:973) ==4289== by 0x43E43D8: gtk_viewport_get_preferred_width (gtkviewport.c:993) ==4289== by 0x42FB922: compute_size_for_orientation (gtksizerequest.c:349) ==4289== by 0x42FC1E8: gtk_widget_get_preferred_width_for_height (gtksizerequest.c:608) ==4289== by 0x42FC4E5: gtk_widget_get_preferred_size (gtksizerequest.c:707) ==4289== by 0x4191B02: gtk_container_real_check_resize (gtkcontainer.c:1824) ==4289== by 0x4B3048B: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:115) ==4289== by 0x4B2E119: g_type_class_meta_marshalv (gclosure.c:997) ==4289== by 0x4B2DCDB: _g_closure_invoke_va (gclosure.c:840) ==4289== by 0x4B46A37: g_signal_emit_valist (gsignal.c:3207) ==4289== by 0x4B47497: g_signal_emit (gsignal.c:3352) ==4289== by 0x4191AB9: gtk_container_check_resize (gtkcontainer.c:1814) ==4289== by 0x4191563: gtk_container_idle_sizer (gtkcontainer.c:1677) ==4289== by 0x4611BCC: gdk_threads_dispatch (gdk.c:763) ==4289== by 0x4BC9D3E: g_idle_dispatch (gmain.c:4657) ==4289== by 0x4BC75F9: g_main_dispatch (gmain.c:2539) ==4289== by 0x4BC81A5: g_main_context_dispatch (gmain.c:3075) ==4289== by 0x4BC8390: g_main_context_iterate (gmain.c:3146) ==4289== by 0x4BC8463: g_main_context_iteration (gmain.c:3207) ==4289== by 0x488BAA9: g_application_run (gapplication.c:1496) ==4289== by 0x8051E55: main (font-view.c:742) ==4289== Address 0x7436c60 is not stack'd, malloc'd or (recently) free'd ==4289== ==4289== Invalid read of size 4 ==4289== at 0x804F8D2: sushi_font_widget_draw (sushi-font-widget.c:449) ==4289== by 0x4256B85: _gtk_marshal_BOOLEAN__BOXEDv (gtkmarshalers.c:130) ==4289== by 0x43E4A63: gtk_widget_draw_marshallerv (gtkwidget.c:849) ==4289== by 0x4B2E119: g_type_class_meta_marshalv (gclosure.c:997) ==4289== by 0x4B2DCDB: _g_closure_invoke_va (gclosure.c:840) ==4289== by 0x4B46A37: g_signal_emit_valist (gsignal.c:3207) ==4289== by 0x4B47497: g_signal_emit (gsignal.c:3352) ==4289== by 0x43EDBD2: _gtk_widget_draw_internal (gtkwidget.c:5740) ==4289== by 0x43EE874: gtk_widget_send_expose (gtkwidget.c:6120) ==4289== by 0x42551CA: gtk_main_do_event (gtkmain.c:1621) ==4289== by 0x461CEB7: _gdk_event_emit (gdkevents.c:69) ==4289== by 0x462C8B6: _gdk_window_process_updates_recurse (gdkwindow.c:3883) ==4289== by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928) ==4289== by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928) ==4289== by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928) ==4289== by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928) ==4289== by 0x462C9D8: _gdk_window_process_updates_recurse (gdkwindow.c:3928) ==4289== by 0x4669E31: gdk_x11_window_process_updates_recurse (gdkwindow-x11.c:4850) ==4289== by 0x462CC51: gdk_window_process_updates_internal (gdkwindow.c:4069) ==4289== by 0x462CF09: gdk_window_process_all_updates (gdkwindow.c:4200) ==4289== by 0x4191572: gtk_container_idle_sizer (gtkcontainer.c:1680) ==4289== by 0x4611BCC: gdk_threads_dispatch (gdk.c:763) ==4289== by 0x4BC9D3E: g_idle_dispatch (gmain.c:4657) ==4289== by 0x4BC75F9: g_main_dispatch (gmain.c:2539) ==4289== by 0x4BC81A5: g_main_context_dispatch (gmain.c:3075) ==4289== by 0x4BC8390: g_main_context_iterate (gmain.c:3146) ==4289== by 0x4BC8463: g_main_context_iteration (gmain.c:3207) ==4289== by 0x488BAA9: g_application_run (gapplication.c:1496) ==4289== by 0x8051E55: main (font-view.c:742) ==4289== Address 0xadd8638 is not stack'd, malloc'd or (recently) free'd
Okay, those helped a lot. This should be fixed for good now.