Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> On Sun, 2018-05-06 at 12:10 +0100, Frediano Ziglio wrote: > Avoid casting function pointer with different argument providing > a proper utility instead. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/red-channel.c | 19 ++++++++++++++----- > 1 file changed, 14 insertions(+), 5 deletions(-) > > diff --git a/server/red-channel.c b/server/red-channel.c > index ad45fb52..1b38f04d 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -301,10 +301,19 @@ red_channel_init(RedChannel *self) > self->priv->client_cbs.migrate = > red_channel_client_default_migrate; > } > > +// utility to avoid possible invalid function cast > +static void > +red_channel_foreach_client(RedChannel *channel, void > (*func)(RedChannelClient* client)) > +{ > + RedChannelClient *client; > + GLIST_FOREACH(channel->priv->clients, RedChannelClient, client) > { > + func(client); > + } > +} > > void red_channel_receive(RedChannel *channel) > { > - g_list_foreach(channel->priv->clients, > (GFunc)red_channel_client_receive, NULL); > + red_channel_foreach_client(channel, red_channel_client_receive); > } > > void red_channel_add_client(RedChannel *channel, RedChannelClient > *rcc) > @@ -403,13 +412,13 @@ void red_channel_destroy(RedChannel *channel) > // prevent future connection > reds_unregister_channel(channel->priv->reds, channel); > > - g_list_foreach(channel->priv->clients, > (GFunc)red_channel_client_destroy, NULL); > + red_channel_foreach_client(channel, red_channel_client_destroy); > g_object_unref(channel); > } > > void red_channel_send(RedChannel *channel) > { > - g_list_foreach(channel->priv->clients, > (GFunc)red_channel_client_send, NULL); > + red_channel_foreach_client(channel, red_channel_client_send); > } > > void red_channel_push(RedChannel *channel) > @@ -418,7 +427,7 @@ void red_channel_push(RedChannel *channel) > return; > } > > - g_list_foreach(channel->priv->clients, > (GFunc)red_channel_client_push, NULL); > + red_channel_foreach_client(channel, red_channel_client_push); > } > > void red_channel_pipes_add(RedChannel *channel, RedPipeItem *item) > @@ -478,7 +487,7 @@ void red_channel_remove_client(RedChannel > *channel, RedChannelClient *rcc) > > void red_channel_disconnect(RedChannel *channel) > { > - g_list_foreach(channel->priv->clients, > (GFunc)red_channel_client_disconnect, NULL); > + red_channel_foreach_client(channel, > red_channel_client_disconnect); > } > > void red_channel_connect(RedChannel *channel, RedClient *client, _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel