On Thu, 2015-10-22 at 10:06 +0200, Fabiano Fidêncio wrote: > On Thu, Oct 22, 2015 at 9:13 AM, Victor Toso <lists@xxxxxxxxxxxxxx> wrote: > > Hi, > > > > On Wed, Oct 21, 2015 at 03:52:49PM -0500, Jonathon Jongsma wrote: > > > In order to avoid reference cycles, you're supposed to release > > > references in dispose, especially to those objects that can hold > > > references to yourself. This probably wasn't causing any leaks, since > > > the file transfer tasks generally are not alive when the main channel is > > > destroyed, but it's more proper. > > > --- > > > src/channel-main.c | 7 +++++-- > > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > > > diff --git a/src/channel-main.c b/src/channel-main.c > > > index 3a8c1dd..0a73e92 100644 > > > --- a/src/channel-main.c > > > +++ b/src/channel-main.c > > > @@ -405,6 +405,11 @@ static void spice_main_channel_dispose(GObject *obj) > > > c->migrate_delayed_id = 0; > > > } > > > > > > + if (c->file_xfer_tasks) { > > > + g_hash_table_unref(c->file_xfer_tasks); > > > + c->file_xfer_tasks = NULL; > > > + } > > > + > > > > g_clear_object(&c->file_xfer_tasks); > > No, please, it's wrong. > For GHashTable you must use g_clear_pointer() instead of > g_clear_object() and g_clear_pointer() is part of GLib since 2.34, > while we depend on 2.28. > We are using g_clear_pointer() on a few places, for older glib it is defined in the glib-compat.h Pavel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel