On Tue, 2017-02-07 at 11:59 +0100, Christophe Fergeau wrote: > It was probably meant to be used as a "user_data" argument for the > various callbacks, but turns out not to be used. Hmm, it looks like the last use of this 'data' variable was removed in 96e94c6f. That commit used g_object_set_data() to attach the 'dispatcher' object to the channel object rather than setting priv- >data via the _register_client_cbs() function. I'm not too fond of g_object_set_data() for that use (even though apparently I was the one that did it). I wonder if there's a better approach than either of these approaches... I'll try to review the rest of the patches in this series and come back to this... Jonathon > --- > server/inputs-channel.c | 2 +- > server/main-channel.c | 2 +- > server/red-channel.c | 6 +----- > server/red-channel.h | 2 +- > server/red-worker.c | 4 ++-- > server/smartcard.c | 2 +- > server/sound.c | 4 ++-- > server/spicevmc.c | 2 +- > 8 files changed, 10 insertions(+), 14 deletions(-) > > diff --git a/server/inputs-channel.c b/server/inputs-channel.c > index f105b4d..e197f68 100644 > --- a/server/inputs-channel.c > +++ b/server/inputs-channel.c > @@ -608,7 +608,7 @@ inputs_channel_constructed(GObject *object) > > client_cbs.connect = inputs_connect; > client_cbs.migrate = inputs_migrate; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > NULL); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > > red_channel_set_cap(RED_CHANNEL(self), > SPICE_INPUTS_CAP_KEY_SCANCODE); > reds_register_channel(reds, RED_CHANNEL(self)); > diff --git a/server/main-channel.c b/server/main-channel.c > index 1124506..745f155 100644 > --- a/server/main-channel.c > +++ b/server/main-channel.c > @@ -335,7 +335,7 @@ main_channel_constructed(GObject *object) > red_channel_set_cap(RED_CHANNEL(self), > SPICE_MAIN_CAP_SEAMLESS_MIGRATE); > > client_cbs.migrate = main_channel_client_migrate; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > NULL); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > } > > static void > diff --git a/server/red-channel.c b/server/red-channel.c > index f2a35f3..835a744 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -91,8 +91,6 @@ struct RedChannelPrivate > RedChannelCapabilities local_caps; > uint32_t migration_flags; > > - void *data; > - > OutgoingHandlerInterface outgoing_cb; > IncomingHandlerInterface incoming_cb; > > @@ -428,8 +426,7 @@ StatNodeRef red_channel_get_stat_node(RedChannel > *channel) > return 0; > } > > -void red_channel_register_client_cbs(RedChannel *channel, const > ClientCbs *client_cbs, > - gpointer cbs_data) > +void red_channel_register_client_cbs(RedChannel *channel, const > ClientCbs *client_cbs) > { > spice_assert(client_cbs->connect || channel->priv->type == > SPICE_CHANNEL_MAIN); > channel->priv->client_cbs.connect = client_cbs->connect; > @@ -441,7 +438,6 @@ void red_channel_register_client_cbs(RedChannel > *channel, const ClientCbs *clien > if (client_cbs->migrate) { > channel->priv->client_cbs.migrate = client_cbs->migrate; > } > - channel->priv->data = cbs_data; > } > > static void add_capability(uint32_t **caps, int *num_caps, uint32_t > cap) > diff --git a/server/red-channel.h b/server/red-channel.h > index f2866f5..7b6846f 100644 > --- a/server/red-channel.h > +++ b/server/red-channel.h > @@ -209,7 +209,7 @@ void red_channel_remove_client(RedChannel > *channel, RedChannelClient *rcc); > > void red_channel_set_stat_node(RedChannel *channel, StatNodeRef > stat); > > -void red_channel_register_client_cbs(RedChannel *channel, const > ClientCbs *client_cbs, gpointer cbs_data); > +void red_channel_register_client_cbs(RedChannel *channel, const > ClientCbs *client_cbs); > // caps are freed when the channel is destroyed > void red_channel_set_common_cap(RedChannel *channel, uint32_t cap); > void red_channel_set_cap(RedChannel *channel, uint32_t cap); > diff --git a/server/red-worker.c b/server/red-worker.c > index 475acc4..230e87d 100644 > --- a/server/red-worker.c > +++ b/server/red-worker.c > @@ -1372,7 +1372,7 @@ RedWorker* red_worker_new(QXLInstance *qxl, > &worker->core); > channel = RED_CHANNEL(worker->cursor_channel); > red_channel_set_stat_node(channel, stat_add_node(reds, worker- > >stat, "cursor_channel", TRUE)); > - red_channel_register_client_cbs(channel, client_cursor_cbs, > dispatcher); > + red_channel_register_client_cbs(channel, client_cursor_cbs); > g_object_set_data(G_OBJECT(channel), "dispatcher", dispatcher); > reds_register_channel(reds, channel); > > @@ -1383,7 +1383,7 @@ RedWorker* red_worker_new(QXLInstance *qxl, > init_info.n_surfac > es); > channel = RED_CHANNEL(worker->display_channel); > red_channel_set_stat_node(channel, stat_add_node(reds, worker- > >stat, "display_channel", TRUE)); > - red_channel_register_client_cbs(channel, client_display_cbs, > dispatcher); > + red_channel_register_client_cbs(channel, client_display_cbs); > g_object_set_data(G_OBJECT(channel), "dispatcher", dispatcher); > reds_register_channel(reds, channel); > > diff --git a/server/smartcard.c b/server/smartcard.c > index f4bc40d..bfc4b24 100644 > --- a/server/smartcard.c > +++ b/server/smartcard.c > @@ -577,7 +577,7 @@ red_smartcard_channel_constructed(GObject > *object) > G_OBJECT_CLASS(red_smartcard_channel_parent_class)- > >constructed(object); > > client_cbs.connect = smartcard_connect_client; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > NULL); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > > reds_register_channel(reds, RED_CHANNEL(self)); > } > diff --git a/server/sound.c b/server/sound.c > index 7c36174..2692fe5 100644 > --- a/server/sound.c > +++ b/server/sound.c > @@ -1393,7 +1393,7 @@ playback_channel_constructed(GObject *object) > > client_cbs.connect = snd_set_playback_peer; > client_cbs.migrate = snd_migrate_channel_client; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > self); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > > if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, > SND_CODEC_ANY_FREQUENCY)) { > red_channel_set_cap(RED_CHANNEL(self), > SPICE_PLAYBACK_CAP_CELT_0_5_1); > @@ -1443,7 +1443,7 @@ record_channel_constructed(GObject *object) > > client_cbs.connect = snd_set_record_peer; > client_cbs.migrate = snd_migrate_channel_client; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > self); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > > if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, > SND_CODEC_ANY_FREQUENCY)) { > red_channel_set_cap(RED_CHANNEL(self), > SPICE_RECORD_CAP_CELT_0_5_1); > diff --git a/server/spicevmc.c b/server/spicevmc.c > index 9bcbada..180d4eb 100644 > --- a/server/spicevmc.c > +++ b/server/spicevmc.c > @@ -192,7 +192,7 @@ red_vmc_channel_constructed(GObject *object) > G_OBJECT_CLASS(red_vmc_channel_parent_class)- > >constructed(object); > > client_cbs.connect = spicevmc_connect; > - red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, > NULL); > + red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs); > > #ifdef USE_LZ4 > red_channel_set_cap(RED_CHANNEL(self), > SPICE_SPICEVMC_CAP_DATA_COMPRESS_LZ4); _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel