[Spice-devel] [PATCH spice-gtk 1/3] MainChannel: move task free from finalize to dispose

Jonathon Jongsma jjongsma at redhat.com
Thu Oct 22 08:42:09 PDT 2015


On Thu, 2015-10-22 at 13:10 +0200, Fabiano FidĂȘncio wrote:
> On Thu, Oct 22, 2015 at 1:03 PM, Victor Toso <lists at victortoso.com>
> wrote:
> > Hi,
> > 
> > On Thu, Oct 22, 2015 at 10:06:04AM +0200, Fabiano FidĂȘncio wrote:
> > > On Thu, Oct 22, 2015 at 9:13 AM, Victor Toso <
> > > lists at victortoso.com> wrote:
> > > > Hi,
> > > > 
> > > > On Wed, Oct 21, 2015 at 03:52:49PM -0500, Jonathon Jongsma
> > > > wrote:
> > > > > +    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.
> > 
> > g_clear_object is 2.28, I checked in the manual before saying, just
> > to
> > be sure:
> > 
> > https://developer.gnome.org/gobject/unstable/gobject-The-Base-Objec
> > t-Type.html#g-clear-object
> 
> Sure it is.
> OTOH, g_clear_object() works basically as g_clear_pointer(&object,
> g_object_unref); and, in this case, it is not what we want, right?.
> So, you would need to use g_clear_pointer(&object,
> g_hash_table_unref)l and g_clear_pointer has been there since 2.34,
> as
> I said.
> Anyways, it doesn't matter that much as we have both on glib-compat,
> as pointed by Pavel.


Ah, didn't realize we had this in glib-compat already. I've pushed this
series but changed to use g_clear_pointer in both instances. 

Thanks!
Jonathon


More information about the Spice-devel mailing list