[Spice-devel] [spice-server 1/8] Remove red_channel_set_data()
Christophe Fergeau
cfergeau at redhat.com
Mon Mar 14 17:10:27 UTC 2016
It's always called at the same time as red_channel_register_client_cbs()
and the data is used by the callbacks, so we can pass the data as an
argument to red_channel_register_client_cbs().
---
server/inputs-channel.c | 2 +-
server/main-channel.c | 2 +-
server/red-channel.c | 13 ++++---------
server/red-channel.h | 3 +--
server/red-qxl.c | 6 ++----
server/smartcard.c | 2 +-
server/sound.c | 6 ++----
server/spicevmc.c | 2 +-
8 files changed, 13 insertions(+), 23 deletions(-)
diff --git a/server/inputs-channel.c b/server/inputs-channel.c
index ca8166d..45e0a8f 100644
--- a/server/inputs-channel.c
+++ b/server/inputs-channel.c
@@ -650,7 +650,7 @@ InputsChannel* inputs_channel_new(RedsState *reds)
client_cbs.connect = inputs_connect;
client_cbs.migrate = inputs_migrate;
- red_channel_register_client_cbs(&inputs->base, &client_cbs);
+ red_channel_register_client_cbs(&inputs->base, &client_cbs, NULL);
red_channel_set_cap(&inputs->base, SPICE_INPUTS_CAP_KEY_SCANCODE);
reds_register_channel(reds, &inputs->base);
diff --git a/server/main-channel.c b/server/main-channel.c
index 9901135..a9d0ce1 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -1184,7 +1184,7 @@ MainChannel* main_channel_new(RedsState *reds)
red_channel_set_cap(channel, SPICE_MAIN_CAP_SEAMLESS_MIGRATE);
client_cbs.migrate = main_channel_client_migrate;
- red_channel_register_client_cbs(channel, &client_cbs);
+ red_channel_register_client_cbs(channel, &client_cbs, NULL);
return (MainChannel *)channel;
}
diff --git a/server/red-channel.c b/server/red-channel.c
index 3909c63..d8f1d27 100644
--- a/server/red-channel.c
+++ b/server/red-channel.c
@@ -1064,7 +1064,7 @@ RedChannel *red_channel_create(int size,
client_cbs.disconnect = red_channel_client_default_disconnect;
client_cbs.migrate = red_channel_client_default_migrate;
- red_channel_register_client_cbs(channel, &client_cbs);
+ red_channel_register_client_cbs(channel, &client_cbs, NULL);
red_channel_set_common_cap(channel, SPICE_COMMON_CAP_MINI_HEADER);
channel->thread_id = pthread_self();
@@ -1115,7 +1115,7 @@ RedChannel *red_channel_create_dummy(int size, RedsState *reds, uint32_t type, u
client_cbs.disconnect = red_channel_client_default_disconnect;
client_cbs.migrate = red_channel_client_default_migrate;
- red_channel_register_client_cbs(channel, &client_cbs);
+ red_channel_register_client_cbs(channel, &client_cbs, NULL);
red_channel_set_common_cap(channel, SPICE_COMMON_CAP_MINI_HEADER);
channel->thread_id = pthread_self();
@@ -1171,7 +1171,7 @@ void red_channel_set_stat_node(RedChannel *channel, StatNodeRef stat)
#endif
}
-void red_channel_register_client_cbs(RedChannel *channel, const ClientCbs *client_cbs)
+void red_channel_register_client_cbs(RedChannel *channel, const ClientCbs *client_cbs, gpointer cbs_data)
{
spice_assert(client_cbs->connect || channel->type == SPICE_CHANNEL_MAIN);
channel->client_cbs.connect = client_cbs->connect;
@@ -1183,6 +1183,7 @@ void red_channel_register_client_cbs(RedChannel *channel, const ClientCbs *clien
if (client_cbs->migrate) {
channel->client_cbs.migrate = client_cbs->migrate;
}
+ channel->data = cbs_data;
}
int test_capability(const uint32_t *caps, int num_caps, uint32_t cap)
@@ -1217,12 +1218,6 @@ void red_channel_set_cap(RedChannel *channel, uint32_t cap)
add_capability(&channel->local_caps.caps, &channel->local_caps.num_caps, cap);
}
-void red_channel_set_data(RedChannel *channel, void *data)
-{
- spice_assert(channel);
- channel->data = data;
-}
-
static void red_channel_ref(RedChannel *channel)
{
channel->refs++;
diff --git a/server/red-channel.h b/server/red-channel.h
index 7c1c95d..26304bf 100644
--- a/server/red-channel.h
+++ b/server/red-channel.h
@@ -383,11 +383,10 @@ RedChannel *red_channel_create_parser(int size,
uint32_t migration_flags);
void red_channel_set_stat_node(RedChannel *channel, StatNodeRef stat);
-void red_channel_register_client_cbs(RedChannel *channel, const ClientCbs *client_cbs);
+void red_channel_register_client_cbs(RedChannel *channel, const ClientCbs *client_cbs, gpointer cbs_data);
// 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);
-void red_channel_set_data(RedChannel *channel, void *data);
RedChannelClient *red_channel_client_create(int size, RedChannel *channel, RedClient *client,
RedsStream *stream,
diff --git a/server/red-qxl.c b/server/red-qxl.c
index 491046f..ee3cab0 100644
--- a/server/red-qxl.c
+++ b/server/red-qxl.c
@@ -985,16 +985,14 @@ void red_qxl_init(RedsState *reds, QXLInstance *qxl)
client_cbs.connect = red_qxl_set_cursor_peer;
client_cbs.disconnect = red_qxl_disconnect_cursor_peer;
client_cbs.migrate = red_qxl_cursor_migrate;
- red_channel_register_client_cbs(channel, &client_cbs);
- red_channel_set_data(channel, qxl_state);
+ red_channel_register_client_cbs(channel, &client_cbs, qxl_state);
reds_register_channel(reds, channel);
channel = red_worker_get_display_channel(worker);
client_cbs.connect = red_qxl_set_display_peer;
client_cbs.disconnect = red_qxl_disconnect_display_peer;
client_cbs.migrate = red_qxl_display_migrate;
- red_channel_register_client_cbs(channel, &client_cbs);
- red_channel_set_data(channel, qxl_state);
+ red_channel_register_client_cbs(channel, &client_cbs, qxl_state);
red_channel_set_cap(channel, SPICE_DISPLAY_CAP_MONITORS_CONFIG);
red_channel_set_cap(channel, SPICE_DISPLAY_CAP_PREF_COMPRESSION);
red_channel_set_cap(channel, SPICE_DISPLAY_CAP_STREAM_REPORT);
diff --git a/server/smartcard.c b/server/smartcard.c
index 55382e2..2b25bac 100644
--- a/server/smartcard.c
+++ b/server/smartcard.c
@@ -863,7 +863,7 @@ static void smartcard_init(void)
}
client_cbs.connect = smartcard_connect_client;
- red_channel_register_client_cbs(&g_smartcard_channel->base, &client_cbs);
+ red_channel_register_client_cbs(&g_smartcard_channel->base, &client_cbs, NULL);
reds_register_channel(reds, &g_smartcard_channel->base);
}
diff --git a/server/sound.c b/server/sound.c
index 1aa3a74..82c14f7 100644
--- a/server/sound.c
+++ b/server/sound.c
@@ -1534,8 +1534,7 @@ void snd_attach_playback(RedsState *reds, SpicePlaybackInstance *sin)
client_cbs.connect = snd_set_playback_peer;
client_cbs.disconnect = snd_disconnect_channel_client;
client_cbs.migrate = snd_playback_migrate_channel_client;
- red_channel_register_client_cbs(channel, &client_cbs);
- red_channel_set_data(channel, playback_worker);
+ red_channel_register_client_cbs(channel, &client_cbs, playback_worker);
if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, SND_CODEC_ANY_FREQUENCY))
red_channel_set_cap(channel, SPICE_PLAYBACK_CAP_CELT_0_5_1);
@@ -1564,8 +1563,7 @@ void snd_attach_record(RedsState *reds, SpiceRecordInstance *sin)
client_cbs.connect = snd_set_record_peer;
client_cbs.disconnect = snd_disconnect_channel_client;
client_cbs.migrate = snd_record_migrate_channel_client;
- red_channel_register_client_cbs(channel, &client_cbs);
- red_channel_set_data(channel, record_worker);
+ red_channel_register_client_cbs(channel, &client_cbs, record_worker);
if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, SND_CODEC_ANY_FREQUENCY))
red_channel_set_cap(channel, SPICE_RECORD_CAP_CELT_0_5_1);
red_channel_set_cap(channel, SPICE_RECORD_CAP_VOLUME);
diff --git a/server/spicevmc.c b/server/spicevmc.c
index 1050fde..f745fdb 100644
--- a/server/spicevmc.c
+++ b/server/spicevmc.c
@@ -528,7 +528,7 @@ SpiceCharDeviceState *spicevmc_device_connect(RedsState *reds,
red_channel_init_outgoing_messages_window(&state->channel);
client_cbs.connect = spicevmc_connect;
- red_channel_register_client_cbs(&state->channel, &client_cbs);
+ red_channel_register_client_cbs(&state->channel, &client_cbs, NULL);
char_dev_cbs.read_one_msg_from_device = spicevmc_chardev_read_msg_from_dev;
char_dev_cbs.ref_msg_to_client = spicevmc_chardev_ref_msg_to_client;
--
2.5.0
More information about the Spice-devel
mailing list