On Fri, Nov 04, 2016 at 11:19:22AM -0500, Jonathon Jongsma wrote: > Use g_param_spec_object() instead of g_param_spec_pointer() for the > 'client' and 'channel' properties now that these types are GObjects. > This improves refcounting and typesafety slightly. > --- > server/red-channel-client.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/server/red-channel-client.c b/server/red-channel-client.c > index 84dd28f..ad4a545 100644 > --- a/server/red-channel-client.c > +++ b/server/red-channel-client.c > @@ -150,10 +150,10 @@ red_channel_client_get_property(GObject *object, > g_value_set_pointer(value, self->priv->stream); > break; > case PROP_CHANNEL: > - g_value_set_pointer(value, self->priv->channel); > + g_value_set_object(value, self->priv->channel); If something is using getters, this will introduce a leak, but I could not find anything doing g_object_get(..., "channel", ...) > break; > case PROP_CLIENT: > - g_value_set_pointer(value, self->priv->client); > + g_value_set_object(value, self->priv->client); > break; > case PROP_MONITOR_LATENCY: > g_value_set_boolean(value, self->priv->monitor_latency); > @@ -195,12 +195,10 @@ red_channel_client_set_property(GObject *object, > case PROP_CHANNEL: > if (self->priv->channel) > g_object_unref(self->priv->channel); > - self->priv->channel = g_value_get_pointer(value); > - if (self->priv->channel) > - g_object_ref(self->priv->channel); > + self->priv->channel = g_value_dup_object(value); > break; > case PROP_CLIENT: > - self->priv->client = g_value_get_pointer(value); > + self->priv->client = g_value_get_object(value); Just to be sure, we don't want to take a ref on the client? Looks good to me as is. Acked-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Christophe > break; > case PROP_MONITOR_LATENCY: > self->priv->monitor_latency = g_value_get_boolean(value); > @@ -312,18 +310,20 @@ static void red_channel_client_class_init(RedChannelClientClass *klass) > | G_PARAM_CONSTRUCT_ONLY); > g_object_class_install_property(object_class, PROP_STREAM, spec); > > - spec = g_param_spec_pointer("channel", "channel", > - "Associated RedChannel", > - G_PARAM_STATIC_STRINGS > - | G_PARAM_READWRITE > - | G_PARAM_CONSTRUCT_ONLY); > + spec = g_param_spec_object("channel", "channel", > + "Associated RedChannel", > + RED_TYPE_CHANNEL, > + G_PARAM_STATIC_STRINGS > + | G_PARAM_READWRITE > + | G_PARAM_CONSTRUCT_ONLY); > g_object_class_install_property(object_class, PROP_CHANNEL, spec); > > - spec = g_param_spec_pointer("client", "client", > - "Associated RedClient", > - G_PARAM_STATIC_STRINGS > - | G_PARAM_READWRITE > - | G_PARAM_CONSTRUCT_ONLY); > + spec = g_param_spec_object("client", "client", > + "Associated RedClient", > + RED_TYPE_CLIENT, > + G_PARAM_STATIC_STRINGS > + | G_PARAM_READWRITE > + | G_PARAM_CONSTRUCT_ONLY); > g_object_class_install_property(object_class, PROP_CLIENT, spec); > > spec = g_param_spec_boolean("monitor-latency", "monitor-latency", > -- > 2.7.4 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel