Re: ANNOUNCE: gtkmm 2.91.7
- From: Murray Cumming <murrayc murrayc com>
- To: Krzesimir Nowak <qdlacz gmail com>
- Cc: tristanb <tristanb openismus com>, gtkmm-list <gtkmm-list gnome org>
- Subject: Re: ANNOUNCE: gtkmm 2.91.7
- Date: Fri, 24 Dec 2010 14:07:18 +0100
On Fri, 2010-12-24 at 13:14 +0100, Krzesimir Nowak wrote:
> 2010/12/22 Murray Cumming <murrayc murrayc com>:
> > On Wed, 2010-12-22 at 12:31 +0100, Murray Cumming wrote:
> >> WARNING: TreeViews seems to be mostly empty in this version, but I'm releasing
> >> this unstable version anyway. Maybe someone can discover what the problem is.
> >
> > This is not a problem with plain GTK+, so maybe something in gtkmm is
> > causing it. Maybe some vfunc, for instance.
> >
> > I'm not likely to have much time over the next few weeks, so I'd
> > appreciate any help in debugging this.
> >
>
> I have some suspicions about newly introduced cell stuff.
> Especially a piece of code in gtkcelllayout.c beginning from line 133:
>
> if (iface->pack_start)
> iface->pack_start (cell_layout, cell, expand);
> else
> {
> area = iface->get_area (cell_layout);
>
> if (area)
> gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (area), cell, expand);
> }
>
> The `if (iface->pack_start)' is true, because gtkmm puts there its own
> function calling a C++ virtual method if possible. But none is called
> when a type is not a derived one (here - Gtk::CellRendererText), so
> it tries to call the original C vfunc. But this vfunc is NULL, so in the
> end `iface->pack_start (cell_layout, cell, expand);' is a NOP. In that
> case `else' part should be executed, but in C++ it isn't. This should
> probably be fixed in C by giving GtkCellRendererText pack_start
> vfunc a body in `else'. What do you think?
CCing Tristan, the author of that code, who might agree.
In general, yes, it is a bad idea for C GObjects to check if a vfunc is
NULL. It should do default behaviour in a default implementation, not in
the case that there is no default implementation.
--
murrayc murrayc com
www.murrayc.com
www.openismus.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]