I am using valgrind into it. I got leaks only in 2 cases (repeated
variously):

==19790==    by 0x5398314: gtk_label_init (gtklabel.c:1341)
==19790==    by 0x5D84506: g_type_create_instance (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D683B6: g_object_new_internal (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D6A154: g_object_new_valist (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D6A47B: g_object_new (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x53C5E3E: gtk_menu_item_ensure_label (gtkmenuitem.c:2512)
==19790==    by 0x53C5E88: gtk_real_menu_item_get_label (gtkmenuitem.c:1881)
==19790==    by 0x53D05E7: gtk_model_menu_item_set_text (gtkmodelmenuitem.c:246)
==19790==    by 0x53D05E7: gtk_model_menu_item_set_property
(gtkmodelmenuitem.c:447)
==19790==    by 0x5D6B1FA: g_object_set_property (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D5EC05: on_source_notify (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D5FF51: g_object_bind_property_full (in
/usr/lib/libgobject-2.0.so.0.4400.0)

and this:

==19790==    at 0x4C2C080: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19790==    by 0x5FF26F1: g_malloc0 (in /usr/lib/libglib-2.0.so.0.4400.0)
==19790==    by 0x5D620A4: g_closure_new_simple (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D63561: g_cclosure_new (in
/usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D7AD00: g_signal_connect_data (in
/usr/lib/libgobject-2.0.so.0.4400.0)

What does it means?

On Fri, May 8, 2015 at 5:02 PM, Emmanuele Bassi <eba...@gmail.com> wrote:

> Hi;
>
> On 8 May 2015 at 10:25, Konstantin P. <ria.freelan...@gmail.com> wrote:
> > The following code spawns a window --
> >
> > if (connect_build_object != NULL) {
> >     g_object_unref (G_OBJECT ( connect_build_object ));
> >     object = NULL;
> > }
> >     connect_build_object = gtk_builder_new();
> >
> > gtk_builder_add_from_resource ( connect_build_object,
> > "/erg/app/ui/main_window.ui", NULL );
> >
> >     gtk_builder_connect_signals ( connect_build_object, NULL );
> >
> > connect_window = GTK_WIDGET ( gtk_builder_get_object (
> connect_build_object,
> > "connec" ) );
> >
> >     gtk_widget_show ( connect_window );
> >
> > Where connect_build_object is a global variable.
> >
> > Before spawning, it's checked if connect_build_object is initilized, if
> > that's the case, its destroyed by g_object_unref.
> >
> > Closing the window calls the default handler.
> >
> > Problem: Each time I open and close a window, memory usage increases.
> > And it does not decreases after builder unref.
> >  Why it is increases, and how I can avoid this?
>
> You cannot use `top` or pmaps to measure memory usage.
>
> GTK+ (through GLib) uses an internal slab allocator, which means that
> memory is allocated in bulk and then recycled internally.
>
> If you want to check if there are leaks in your code, you should use
> Valgrind instead, after reading this wiki page:
>
>   https://wiki.gnome.org/Valgrind
>
> Ciao,
>  Emmanuele.
>
>
> --
> https://www.bassi.io
> [@] ebassi [@gmail.com]
>
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to