Re: Build break with latest GTK+ 3



On Mon, 2010-09-06 at 12:23 +0200, Murray Cumming wrote:
> On Mon, 2010-09-06 at 10:43 +0100, Damon Chaplin wrote:
> > > I suppose we could just create a GooCanvasAnchorType enum.
> > 
> > I think that is the best/only option. (Though I'd rather it was left
> > in
> > GTK+ to be honest.) 
> 
> OK, I've pushed that, fixing the build in git master.

And here is a rough patch to fix the build with the latest GTK+ changes,
which
a) Remove GtkObject
b) Replace GtkWidget::expose-event with GtkWidget::draw, which receives
an already-clipped cairo_t instead of a GdkEventExpose.


There are some TODOs in my patch. More importantly the demo crashes for
me, though I am using cairo from git master. valgrind shows this, which
doesn't help me much.


=6471== Invalid read of size 4
==6471==    at 0x48A6AC5: _cairo_array_index (cairo-array.c:223)
==6471==    by 0x48A6F44: _cairo_user_data_array_set_data
(cairo-array.c:469)
==6471==    by 0x48B32CE: cairo_set_user_data (cairo.c:513)
==6471==    by 0x432F0B0: gtk_cairo_set_event (gtkwidget.c:5144)
==6471==    by 0x432F9CB: gtk_widget_send_expose (gtkwidget.c:5447)
==6471==    by 0x41C0441: gtk_main_do_event (gtkmain.c:1677)
==6471==    by 0x44812BF: _gdk_window_process_updates_recurse
(gdkwindow.c:3924)
==6471==    by 0x44811CD: _gdk_window_process_updates_recurse
(gdkwindow.c:3897)
==6471==    by 0x44811CD: _gdk_window_process_updates_recurse
(gdkwindow.c:3897)
==6471==    by 0x44B3BF1: _gdk_windowing_window_process_updates_recurse
(gdkwindow-x11.c:5470)
==6471==    by 0x4481570: gdk_window_process_updates_internal
(gdkwindow.c:4082)
==6471==    by 0x4481901: gdk_window_process_updates (gdkwindow.c:4256)
==6471==    by 0x434819A: gtk_window_move_resize (gtkwindow.c:6248)
==6471==    by 0x4346E12: gtk_window_check_resize (gtkwindow.c:5317)
==6471==    by 0x47749D5: g_cclosure_marshal_VOID__VOID (gmarshal.c:79)
==6471==    by 0x4763F46: g_type_class_meta_marshal (gclosure.c:877)
==6471==    by 0x4765A22: g_closure_invoke (gclosure.c:766)
==6471==    by 0x477E21C: signal_emit_unlocked_R (gsignal.c:3290)
==6471==    by 0x477F060: g_signal_emit_valist (gsignal.c:2983)
==6471==    by 0x477F5B5: g_signal_emit (gsignal.c:3040)
==6471==    by 0x411FA5C: gtk_container_check_resize
(gtkcontainer.c:1477)
==6471==    by 0x411F77B: gtk_container_idle_sizer (gtkcontainer.c:1396)
==6471==    by 0x446D07C: gdk_threads_dispatch (gdk.c:486)
==6471==    by 0x47ECB7B: g_idle_dispatch (gmain.c:4254)
==6471==    by 0x47EE7D3: g_main_context_dispatch (gmain.c:2149)
==6471==    by 0x47F1E7F: g_main_context_iterate (gmain.c:2780)
==6471==    by 0x47F23A4: g_main_loop_run (gmain.c:2988)
==6471==    by 0x41BFC79: gtk_main (gtkmain.c:1320)
==6471==    by 0x804EE06: main (demo.c:1630)
==6471==  Address 0x63515b8 is 0 bytes inside a block of size 4 free'd
==6471==    at 0x4024B3A: free (vg_replace_malloc.c:366)
==6471==    by 0x48A7017: _cairo_array_fini (cairo-array.c:103)
==6471==    by 0x48A706D: _cairo_user_data_array_fini
(cairo-array.c:395)
==6471==    by 0x48B55E1: cairo_destroy (cairo.c:455)
==6471==    by 0x4780368: _g_type_boxed_free (gtype.c:4222)
==6471==    by 0x4762D7D: boxed_proxy_value_free (gboxed.c:186)
==6471==    by 0x478A909: g_value_unset (gvalue.c:275)
==6471==    by 0x477F27F: g_signal_emit_valist (gsignal.c:3012)
==6471==    by 0x477F5B5: g_signal_emit (gsignal.c:3040)
==6471==    by 0x432F266: _gtk_widget_draw_internal (gtkwidget.c:5203)
==6471==    by 0x432F9B8: gtk_widget_send_expose (gtkwidget.c:5443)
==6471==    by 0x41C0441: gtk_main_do_event (gtkmain.c:1677)
==6471==    by 0x44812BF: _gdk_window_process_updates_recurse
(gdkwindow.c:3924)
==6471==    by 0x44811CD: _gdk_window_process_updates_recurse
(gdkwindow.c:3897)
==6471==    by 0x44811CD: _gdk_window_process_updates_recurse
(gdkwindow.c:3897)
==6471==    by 0x44B3BF1: _gdk_windowing_window_process_updates_recurse
(gdkwindow-x11.c:5470)
==6471==    by 0x4481570: gdk_window_process_updates_internal
(gdkwindow.c:4082)
==6471==    by 0x4481901: gdk_window_process_updates (gdkwindow.c:4256)
==6471==    by 0x434819A: gtk_window_move_resize (gtkwindow.c:6248)
==6471==    by 0x4346E12: gtk_window_check_resize (gtkwindow.c:5317)
==6471==    by 0x47749D5: g_cclosure_marshal_VOID__VOID (gmarshal.c:79)
==6471==    by 0x4763F46: g_type_class_meta_marshal (gclosure.c:877)
==6471==    by 0x4765A22: g_closure_invoke (gclosure.c:766)
==6471==    by 0x477E21C: signal_emit_unlocked_R (gsignal.c:3290)
==6471==    by 0x477F060: g_signal_emit_valist (gsignal.c:2983)
==6471==    by 0x477F5B5: g_signal_emit (gsignal.c:3040)
==6471==    by 0x411FA5C: gtk_container_check_resize
(gtkcontainer.c:1477)
==6471==    by 0x411F77B: gtk_container_idle_sizer (gtkcontainer.c:1396)
==6471==    by 0x446D07C: gdk_threads_dispatch (gdk.c:486)
==6471==    by 0x47ECB7B: g_idle_dispatch (gmain.c:4254)
==6471==    by 0x47EE7D3: g_main_context_dispatch (gmain.c:2149)
==6471==    by 0x47F1E7F: g_main_context_iterate (gmain.c:2780)
==6471==    by 0x47F23A4: g_main_loop_run (gmain.c:2988)
==6471==    by 0x41BFC79: gtk_main (gtkmain.c:1320)
==6471==    by 0x804EE06: main (demo.c:1630)



-- 
murrayc murrayc com
www.murrayc.com
www.openismus.com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]