After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 623811 - Crash when starting Empathy with GTK+3
Crash when starting Empathy with GTK+3
Status: RESOLVED INVALID
Product: gtk+
Classification: Platform
Component: Widget: GtkTreeView
2.18.x
Other Linux
: Normal normal
: ---
Assigned To: gtktreeview-bugs
gtktreeview-bugs
Depends on:
Blocks:
 
 
Reported: 2010-07-08 08:25 UTC by Guillaume Desmottes
Modified: 2010-07-08 11:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Guillaume Desmottes 2010-07-08 08:25:31 UTC
I have this crash when starting Empathy with GTK+3; no problem with GTK+2.


Gtk-CRITICAL **: gtk_cell_renderer_get_size: assertion `GTK_CELL_RENDERER_GET_CLASS (cell)->get_size != NULL' failed
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff492e5fe in g_logv (log_domain=0x7ffff24d1f73 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff49a7d7d "%s: assertion `%s' failed", args1=0x7fffffffdcd0)
    at gmessages.c:545
545			G_BREAKPOINT ();
(gdb) bt
  • #0 g_logv
    at gmessages.c line 545
  • #1 g_log
    at gmessages.c line 569
  • #2 g_return_if_fail_warning
  • #3 IA__gtk_cell_renderer_get_size
    at gtkcellrenderer.c line 509
  • #4 IA__gtk_tree_view_column_cell_get_size
    at gtktreeviewcolumn.c line 2629
  • #5 validate_row
    at gtktreeview.c line 5747
  • #6 validate_visible_area
    at gtktreeview.c line 5957
  • #7 do_presize_handler
    at gtktreeview.c line 6394
  • #8 presize_handler_callback
    at gtktreeview.c line 6416
  • #9 gdk_threads_dispatch
    at gdk.c line 487
  • #10 g_idle_dispatch
    at gmain.c line 4149
  • #11 g_main_dispatch
    at gmain.c line 2044
  • #12 g_main_context_dispatch
    at gmain.c line 2597
  • #13 g_main_context_iterate
    at gmain.c line 2675
  • #14 g_main_loop_run
    at gmain.c line 2883
  • #15 IA__gtk_main
    at gtkmain.c line 1203
  • #16 main
    at empathy.c line 600

Comment 1 Kristian Rietveld 2010-07-08 08:40:17 UTC
So what kind of GtkCellRenderer is cell here?  Own implementation or a cell renderer provided by GTK+?
Comment 2 Xavier Claessens 2010-07-08 09:32:12 UTC
That's a good question, I'm wondering the same... We have 3 custom renderer in empathy source code: EmpathyCellRendererActivatable (subclass of GtkCellRendererPixbuf, and does not override get_size), EmpathyCellRendererExpander and EmpathyCellRendererText (both subclass of GtkCellRenderer and does override get_size).

So our custom renderer should all be fine, I guess the problem comes from a gtk renderer.

Guillaume, could you please print the GType of the instance that does not have that get_size() virtual method? something like g_print ("%s\n", g_type_name((GType) instance)); just before the assert should do the trick.
Comment 3 Guillaume Desmottes 2010-07-08 11:53:21 UTC
Seems this crash was actually because of a memory corruption elsewhere. Closing it for now.