Hey Kjell,

thanks for the reply.
I already filed a bug report, but seriously, this might result in vast
memory leaks and makes Gtk::Builder almost unusable...

Moritz

Am 08.06.14 17:10, schrieb Kjell Ahlstedt:
> Your question is not stupid. I believe Gtk::Builder::get_widget() and
> Gtk::Builder::get_widget_derived() handle reference counts in the wrong
> way.
> 
> Gtk::Builder::get_widget() adds a reference each time it's called.
> Gtk::Builder::get_widget_derived() adds a reference the first time it's
> called on a certain widget. Other gtkmm methods that return a Widget*
> don't add references. Adding references is appropriate for methods that
> return a Glib::RefPtr<Something>, but not for methods that return a
> plain Something pointer.
> 
> If you like, you can file a bug report. Unfortunately there is a risk
> with fixing the bug before the release of gtkmm 4 (which is probably not
> soon). A fix might break working programs, because some users of gtkmm
> might have adapted their programs to the present behaviour by adding
> some widget->unreference().
> 
> Kjell
> 
> 2014-06-06 08:42, Moritz Peter skrev:
>> Hello everybody,
>>
>> I'm using gtk::builder to create a user-interface. To illustrate my
>> problem I simplified the interface to a window containing only one
>> button. I retrieve both widgets (window and button) using
>> "get_widget_derived" since they are modified by the code.
>> My problem arises at the end of the program, when the widgets should be
>> deleted.
>> The manual states that "toplevel" widgets (windows and dialogs) must be
>> deleted by the user, so I delete the window as prescribed. As the button
>> is inside a container (the window) I expect the button to be managed and
>> therefore being deleted automatically. This is not the case. The
>> destructor of the button is never called.
>> What is my mistake? Or is this a bug?
>>
>> Attached you'll find a simple test program that you can compile using
>> g++ `pkg-config --libs --cflags gtkmm-3.0` gladetest.cpp
>> There you will directly see my problem.
>>
>> I hope, I'm not bothering you with my stupid question.
>> Thanks in advance.
>>
>> Moritz
>>
> 
> 
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to