Avoid to have to declare iterator and pass as an argument. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/display-channel.c | 32 +++++++++++--------------------- server/display-channel.h | 4 ++-- server/main-channel.c | 18 ++++++------------ server/red-channel.c | 24 ++++++++---------------- server/red-channel.h | 4 ++-- server/red-client.c | 19 +++++++------------ server/red-common.h | 10 +++++----- server/red-worker.c | 6 ++---- server/reds-private.h | 4 ++-- server/reds.c | 45 +++++++++++++++------------------------------ server/stream.c | 15 +++++---------- 11 files changed, 65 insertions(+), 116 deletions(-) Changes since v1: - fix macro concatenation and expansion of __LINE__. diff --git a/server/display-channel.c b/server/display-channel.c index 68ea3bad..924d219b 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -256,7 +256,6 @@ void display_channel_surface_unref(DisplayChannel *display, uint32_t surface_id) RedSurface *surface = &display->priv->surfaces[surface_id]; QXLInstance *qxl = common_graphics_channel_get_qxl(COMMON_GRAPHICS_CHANNEL(display)); DisplayChannelClient *dcc; - GListIter iter; if (--surface->refs != 0) { return; @@ -278,7 +277,7 @@ void display_channel_surface_unref(DisplayChannel *display, uint32_t surface_id) region_destroy(&surface->draw_dirty_region); surface->context.canvas = NULL; - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { dcc_destroy_surface(dcc, surface_id); } @@ -296,7 +295,6 @@ static void streams_update_visible_region(DisplayChannel *display, Drawable *dra { Ring *ring; RingItem *item; - GListIter iter; DisplayChannelClient *dcc; if (!red_channel_is_connected(RED_CHANNEL(display))) { @@ -320,7 +318,7 @@ static void streams_update_visible_region(DisplayChannel *display, Drawable *dra continue; } - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { agent = dcc_get_stream_agent(dcc, display_channel_get_stream_id(display, stream)); if (region_intersects(&agent->vis_region, &drawable->tree_item.base.rgn)) { @@ -335,10 +333,9 @@ static void streams_update_visible_region(DisplayChannel *display, Drawable *dra static void pipes_add_drawable(DisplayChannel *display, Drawable *drawable) { DisplayChannelClient *dcc; - GListIter iter; spice_warn_if_fail(drawable->pipes == NULL); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { dcc_prepend_drawable(dcc, drawable); } } @@ -363,9 +360,8 @@ static void pipes_add_drawable_after(DisplayChannel *display, return; } if (num_other_linked != red_channel_get_n_clients(RED_CHANNEL(display))) { - GListIter iter; spice_debug("TODO: not O(n^2)"); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { int sent = 0; GList *l; for (l = pos_after->pipes; l != NULL; l = l->next) { @@ -546,7 +542,6 @@ static bool current_add_equal(DisplayChannel *display, DrawItem *item, TreeItem DisplayChannelClient *dcc; GList *dpi_item; - GListIter iter; other_drawable->refs++; current_remove_drawable(display, other_drawable); @@ -555,7 +550,7 @@ static bool current_add_equal(DisplayChannel *display, DrawItem *item, TreeItem * (or will receive) other_drawable */ dpi_item = g_list_first(other_drawable->pipes); /* dpi contains a sublist of dcc's, ordered the same */ - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { if (dpi_item && dcc == ((RedDrawablePipeItem *) dpi_item->data)->dcc) { dpi_item = dpi_item->next; } else { @@ -1481,24 +1476,22 @@ void display_channel_flush_all_surfaces(DisplayChannel *display) void display_channel_free_glz_drawables_to_free(DisplayChannel *display) { - GListIter iter; DisplayChannelClient *dcc; spice_return_if_fail(display); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { image_encoders_free_glz_drawables_to_free(dcc_get_encoders(dcc)); } } void display_channel_free_glz_drawables(DisplayChannel *display) { - GListIter iter; DisplayChannelClient *dcc; spice_return_if_fail(display); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { image_encoders_free_glz_drawables(dcc_get_encoders(dcc)); } } @@ -1537,11 +1530,10 @@ void display_channel_free_some(DisplayChannel *display) { int n = 0; DisplayChannelClient *dcc; - GListIter iter; spice_debug("#draw=%d, #glz_draw=%d", display->priv->drawable_count, display->priv->encoder_shared_data.glz_drawable_count); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { ImageEncoders *encoders = dcc_get_encoders(dcc); // encoding using the dictionary is prevented since the following operations might @@ -1555,7 +1547,7 @@ void display_channel_free_some(DisplayChannel *display) free_one_drawable(display, TRUE); } - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { ImageEncoders *encoders = dcc_get_encoders(dcc); image_encoders_glz_encode_unlock(encoders); @@ -2028,10 +2020,9 @@ void display_channel_update(DisplayChannel *display, static void clear_surface_drawables_from_pipes(DisplayChannel *display, int surface_id, int wait_if_used) { - GListIter iter; DisplayChannelClient *dcc; - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { if (!dcc_clear_surface_drawables_from_pipe(dcc, surface_id, wait_if_used)) { red_channel_client_disconnect(RED_CHANNEL_CLIENT(dcc)); } @@ -2095,9 +2086,8 @@ void display_channel_destroy_surfaces(DisplayChannel *display) static void send_create_surface(DisplayChannel *display, int surface_id, int image_ready) { DisplayChannelClient *dcc; - GListIter iter; - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { dcc_create_surface(dcc, surface_id); if (image_ready) dcc_push_surface_image(dcc, surface_id); diff --git a/server/display-channel.h b/server/display-channel.h index d15aad46..01e3621e 100644 --- a/server/display-channel.h +++ b/server/display-channel.h @@ -179,9 +179,9 @@ typedef struct RedSurface { QXLReleaseInfoExt create, destroy; } RedSurface; -#define FOREACH_DCC(_channel, _iter, _data) \ +#define FOREACH_DCC(_channel, _data) \ GLIST_FOREACH((_channel ? red_channel_get_clients(RED_CHANNEL(_channel)) : NULL), \ - _iter, DisplayChannelClient, _data) + DisplayChannelClient, _data) int display_channel_get_stream_id(DisplayChannel *display, Stream *stream); Stream *display_channel_get_nth_stream(DisplayChannel *display, gint i); diff --git a/server/main-channel.c b/server/main-channel.c index e9fef7c1..5aaba0ab 100644 --- a/server/main-channel.c +++ b/server/main-channel.c @@ -62,10 +62,9 @@ static void main_channel_client_on_disconnect(RedChannelClient *rcc) RedClient *main_channel_get_client_by_link_id(MainChannel *main_chan, uint32_t connection_id) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(main_chan, iter, rcc) { + FOREACH_CLIENT(main_chan, rcc) { MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); if (main_channel_client_get_connection_id(mcc) == connection_id) { return red_channel_client_get_client(rcc); @@ -99,9 +98,8 @@ void main_channel_push_mouse_mode(MainChannel *main_chan, int current_mode, void main_channel_push_agent_connected(MainChannel *main_chan) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(RED_CHANNEL(main_chan), iter, rcc) { + FOREACH_CLIENT(RED_CHANNEL(main_chan), rcc) { if (red_channel_client_test_remote_cap(rcc, SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS)) { red_channel_client_pipe_add_type(rcc, @@ -325,10 +323,9 @@ main_channel_class_init(MainChannelClass *klass) static int main_channel_connect_semi_seamless(MainChannel *main_channel) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(main_channel, iter, rcc) { + FOREACH_CLIENT(main_channel, rcc) { MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); if (main_channel_client_connect_semi_seamless(mcc)) main_channel->num_clients_mig_wait++; @@ -338,12 +335,11 @@ static int main_channel_connect_semi_seamless(MainChannel *main_channel) static int main_channel_connect_seamless(MainChannel *main_channel) { - GListIter iter; RedChannelClient *rcc; spice_assert(red_channel_get_n_clients(RED_CHANNEL(main_channel)) == 1); - FOREACH_CLIENT(main_channel, iter, rcc) { + FOREACH_CLIENT(main_channel, rcc) { MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); main_channel_client_connect_seamless(mcc); main_channel->num_clients_mig_wait++; @@ -382,10 +378,9 @@ int main_channel_migrate_connect(MainChannel *main_channel, RedsMigSpice *mig_ta void main_channel_migrate_cancel_wait(MainChannel *main_chan) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(main_chan, iter, rcc) { + FOREACH_CLIENT(main_chan, rcc) { MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); main_channel_client_migrate_cancel_wait(mcc); } @@ -394,7 +389,6 @@ void main_channel_migrate_cancel_wait(MainChannel *main_chan) int main_channel_migrate_src_complete(MainChannel *main_chan, int success) { - GListIter iter; int semi_seamless_count = 0; RedChannelClient *rcc; @@ -405,7 +399,7 @@ int main_channel_migrate_src_complete(MainChannel *main_chan, int success) return 0; } - FOREACH_CLIENT(main_chan, iter, rcc) { + FOREACH_CLIENT(main_chan, rcc) { MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); if (main_channel_client_migrate_src_complete(mcc, success)) semi_seamless_count++; diff --git a/server/red-channel.c b/server/red-channel.c index 9bd98234..9559547c 100644 --- a/server/red-channel.c +++ b/server/red-channel.c @@ -316,10 +316,9 @@ void red_channel_add_client(RedChannel *channel, RedChannelClient *rcc) bool red_channel_test_remote_cap(RedChannel *channel, uint32_t cap) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { if (!red_channel_client_test_remote_cap(rcc, cap)) { return FALSE; } @@ -511,13 +510,12 @@ guint red_channel_get_n_clients(RedChannel *channel) bool red_channel_all_blocked(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; if (!channel || !channel->priv->clients) { return FALSE; } - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { if (!red_channel_client_is_blocked(rcc)) { return FALSE; } @@ -528,10 +526,9 @@ bool red_channel_all_blocked(RedChannel *channel) /* return TRUE if any of the connected clients to this channel are blocked */ static bool red_channel_any_blocked(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { if (red_channel_client_is_blocked(rcc)) { return TRUE; } @@ -541,10 +538,9 @@ static bool red_channel_any_blocked(RedChannel *channel) static bool red_channel_no_item_being_sent(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { if (!red_channel_client_no_item_being_sent(rcc)) { return FALSE; } @@ -578,7 +574,6 @@ static int red_channel_pipes_create_batch(RedChannel *channel, new_pipe_item_t creator, void *data, rcc_item_t pipe_add) { - GListIter iter; RedChannelClient *rcc; RedPipeItem *item; int num = 0, n = 0; @@ -586,7 +581,7 @@ static int red_channel_pipes_create_batch(RedChannel *channel, spice_assert(creator != NULL); spice_assert(pipe_add != NULL); - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { item = (*creator)(rcc, data, num++); if (item) { (*pipe_add)(rcc, item); @@ -615,11 +610,10 @@ void red_channel_pipes_new_add(RedChannel *channel, new_pipe_item_t creator, voi uint32_t red_channel_max_pipe_size(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; uint32_t pipe_size = 0; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { uint32_t new_size; new_size = red_channel_client_get_pipe_size(rcc); pipe_size = MAX(pipe_size, new_size); @@ -629,11 +623,10 @@ uint32_t red_channel_max_pipe_size(RedChannel *channel) uint32_t red_channel_min_pipe_size(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; uint32_t pipe_size = ~0; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { uint32_t new_size; new_size = red_channel_client_get_pipe_size(rcc); pipe_size = MIN(pipe_size, new_size); @@ -643,11 +636,10 @@ uint32_t red_channel_min_pipe_size(RedChannel *channel) uint32_t red_channel_sum_pipes_size(RedChannel *channel) { - GListIter iter; RedChannelClient *rcc; uint32_t sum = 0; - FOREACH_CLIENT(channel, iter, rcc) { + FOREACH_CLIENT(channel, rcc) { sum += red_channel_client_get_pipe_size(rcc); } return sum; diff --git a/server/red-channel.h b/server/red-channel.h index a9088a7d..e65eea1e 100644 --- a/server/red-channel.h +++ b/server/red-channel.h @@ -122,9 +122,9 @@ struct RedChannelClass channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial; }; -#define FOREACH_CLIENT(_channel, _iter, _data) \ +#define FOREACH_CLIENT(_channel, _data) \ GLIST_FOREACH((_channel ? red_channel_get_clients(RED_CHANNEL(_channel)) : NULL), \ - _iter, RedChannelClient, _data) + RedChannelClient, _data) /* Red Channel interface */ diff --git a/server/red-client.c b/server/red-client.c index b783b84c..666903e3 100644 --- a/server/red-client.c +++ b/server/red-client.c @@ -23,8 +23,8 @@ #include "red-client.h" #include "reds.h" -#define FOREACH_CHANNEL_CLIENT(_client, _iter, _data) \ - GLIST_FOREACH((_client ? (_client)->channels : NULL), _iter, RedChannelClient, _data) +#define FOREACH_CHANNEL_CLIENT(_client, _data) \ + GLIST_FOREACH((_client ? (_client)->channels : NULL), RedChannelClient, _data) struct RedClient { GObject parent; @@ -155,7 +155,6 @@ RedClient *red_client_new(RedsState *reds, int migrated) void red_client_set_migration_seamless(RedClient *client) // dest { - GListIter iter; RedChannelClient *rcc; spice_assert(client->during_target_migrate); @@ -163,7 +162,7 @@ void red_client_set_migration_seamless(RedClient *client) // dest client->seamless_migrate = TRUE; /* update channel clients that got connected before the migration * type was set. red_client_add_channel will handle newer channel clients */ - FOREACH_CHANNEL_CLIENT(client, iter, rcc) { + FOREACH_CHANNEL_CLIENT(client, rcc) { if (red_channel_client_set_migration_seamless(rcc)) { client->num_migrated_channels++; } @@ -173,7 +172,6 @@ void red_client_set_migration_seamless(RedClient *client) // dest void red_client_migrate(RedClient *client) { - GListIter iter; RedChannelClient *rcc; RedChannel *channel; @@ -184,7 +182,7 @@ void red_client_migrate(RedClient *client) " this might be a BUG", client->thread_id, pthread_self()); } - FOREACH_CHANNEL_CLIENT(client, iter, rcc) { + FOREACH_CHANNEL_CLIENT(client, rcc) { if (red_channel_client_is_connected(rcc)) { channel = red_channel_client_get_channel(rcc); red_channel_migrate_client(channel, rcc); @@ -194,7 +192,6 @@ void red_client_migrate(RedClient *client) void red_client_destroy(RedClient *client) { - GListIter iter; RedChannelClient *rcc; spice_printerr("destroy client %p with #channels=%d", client, g_list_length(client->channels)); @@ -205,7 +202,7 @@ void red_client_destroy(RedClient *client) client->thread_id, pthread_self()); } - FOREACH_CHANNEL_CLIENT(client, iter, rcc) { + FOREACH_CHANNEL_CLIENT(client, rcc) { RedChannel *channel; // some channels may be in other threads, so disconnection // is not synchronous. @@ -228,11 +225,10 @@ void red_client_destroy(RedClient *client) /* client->lock should be locked */ static RedChannelClient *red_client_get_channel(RedClient *client, int type, int id) { - GListIter iter; RedChannelClient *rcc; RedChannelClient *ret = NULL; - FOREACH_CHANNEL_CLIENT(client, iter, rcc) { + FOREACH_CHANNEL_CLIENT(client, rcc) { int channel_type, channel_id; RedChannel *channel; @@ -292,7 +288,6 @@ void red_client_set_main(RedClient *client, MainChannelClient *mcc) void red_client_semi_seamless_migrate_complete(RedClient *client) { - GListIter iter; RedChannelClient *rcc; pthread_mutex_lock(&client->lock); @@ -302,7 +297,7 @@ void red_client_semi_seamless_migrate_complete(RedClient *client) return; } client->during_target_migrate = FALSE; - FOREACH_CHANNEL_CLIENT(client, iter, rcc) { + FOREACH_CHANNEL_CLIENT(client, rcc) { red_channel_client_semi_seamless_migration_complete(rcc); } pthread_mutex_unlock(&client->lock); diff --git a/server/red-common.h b/server/red-common.h index cb459b05..9ff1fd9b 100644 --- a/server/red-common.h +++ b/server/red-common.h @@ -81,16 +81,16 @@ typedef struct GListIter { } GListIter; #define GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, _dir) \ - for (_iter.link = _list; \ + for (GListIter _iter = { .link = _list }; \ (_data = (_type *) (_iter.link ? _iter.link->data : NULL), \ _iter.next = (_iter.link ? _iter.link->_dir : NULL), \ _iter.link) != NULL; \ _iter.link = _iter.next) -#define GLIST_FOREACH(_list, _iter, _type, _data) \ - GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, next) +#define GLIST_FOREACH(_list, _type, _data) \ + GLIST_FOREACH_GENERIC(_list, G_PASTE(_iter_, __LINE__), _type, _data, next) -#define GLIST_FOREACH_REVERSED(_list, _iter, _type, _data) \ - GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, prev) +#define GLIST_FOREACH_REVERSED(_list, _type, _data) \ + GLIST_FOREACH_GENERIC(_list, G_PASTE(_iter_, __LINE__), _type, _data, prev) #endif /* RED_COMMON_H_ */ diff --git a/server/red-worker.c b/server/red-worker.c index f747e128..36a29074 100644 --- a/server/red-worker.c +++ b/server/red-worker.c @@ -380,7 +380,6 @@ static void guest_set_client_capabilities(RedWorker *worker) { int i; RedChannelClient *rcc; - GListIter iter; uint8_t caps[SPICE_CAPABILITIES_SIZE] = { 0 }; int caps_available[] = { SPICE_DISPLAY_CAP_SIZED_STREAM, @@ -413,7 +412,7 @@ static void guest_set_client_capabilities(RedWorker *worker) for (i = 0 ; i < SPICE_N_ELEMENTS(caps_available); ++i) { SET_CAP(caps, caps_available[i]); } - FOREACH_CLIENT(worker->display_channel, iter, rcc) { + FOREACH_CLIENT(worker->display_channel, rcc) { for (i = 0 ; i < SPICE_N_ELEMENTS(caps_available); ++i) { if (!red_channel_client_test_remote_cap(rcc, caps_available[i])) CLEAR_CAP(caps, caps_available[i]); @@ -489,9 +488,8 @@ static void handle_dev_destroy_surfaces(void *opaque, void *payload) static void red_worker_push_monitors_config(RedWorker *worker) { DisplayChannelClient *dcc; - GListIter iter; - FOREACH_DCC(worker->display_channel, iter, dcc) { + FOREACH_DCC(worker->display_channel, dcc) { dcc_push_monitors_config(dcc); } } diff --git a/server/reds-private.h b/server/reds-private.h index 26b7435a..c4ab3d1c 100644 --- a/server/reds-private.h +++ b/server/reds-private.h @@ -134,7 +134,7 @@ struct RedsState { RedRecord *record; }; -#define FOREACH_QXL_INSTANCE(_reds, _iter, _qxl) \ - GLIST_FOREACH(_reds->qxl_instances, _iter, QXLInstance, _qxl) +#define FOREACH_QXL_INSTANCE(_reds, _qxl) \ + GLIST_FOREACH(_reds->qxl_instances, QXLInstance, _qxl) #endif /* REDS_PRIVATE_H_ */ diff --git a/server/reds.c b/server/reds.c index 8abfbda5..33f038c7 100644 --- a/server/reds.c +++ b/server/reds.c @@ -400,10 +400,9 @@ void reds_unregister_channel(RedsState *reds, RedChannel *channel) RedChannel *reds_find_channel(RedsState *reds, uint32_t type, uint32_t id) { - GListIter it; RedChannel *channel; - GLIST_FOREACH(reds->channels, it, RedChannel, channel) { + GLIST_FOREACH(reds->channels, RedChannel, channel) { uint32_t this_type, this_id; g_object_get(channel, "channel-type", &this_type, "id", &this_id, NULL); if (this_type == type && this_id == id) { @@ -574,11 +573,10 @@ void reds_client_disconnect(RedsState *reds, RedClient *client) // reds_client_disconnect static void reds_disconnect(RedsState *reds) { - GListIter iter; RedClient *client; spice_debug("trace"); - GLIST_FOREACH(reds->clients, iter, RedClient, client) { + GLIST_FOREACH(reds->clients, RedClient, client) { reds_client_disconnect(reds, client); } reds_mig_cleanup(reds); @@ -605,7 +603,6 @@ int reds_get_mouse_mode(RedsState *reds) static void reds_set_mouse_mode(RedsState *reds, uint32_t mode) { - GListIter it; QXLInstance *qxl; if (reds->mouse_mode == mode) { @@ -613,7 +610,7 @@ static void reds_set_mouse_mode(RedsState *reds, uint32_t mode) } reds->mouse_mode = mode; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_set_mouse_mode(qxl, mode); } @@ -957,11 +954,10 @@ static bool channel_supports_multiple_clients(RedChannel *channel) static void reds_fill_channels(RedsState *reds, SpiceMsgChannels *channels_info) { - GListIter it; RedChannel *channel; int used_channels = 0; - GLIST_FOREACH(reds->channels, it, RedChannel, channel) { + GLIST_FOREACH(reds->channels, RedChannel, channel) { uint32_t type, id; if (g_list_length(reds->clients) > 1 && !channel_supports_multiple_clients(channel)) { @@ -1689,20 +1685,18 @@ static void reds_mig_target_client_free(RedsState *reds, RedsMigTargetClient *mi static void reds_mig_target_client_disconnect_all(RedsState *reds) { - GListIter it; RedsMigTargetClient *mig_client; - GLIST_FOREACH(reds->mig_target_clients, it, RedsMigTargetClient, mig_client) { + GLIST_FOREACH(reds->mig_target_clients, RedsMigTargetClient, mig_client) { reds_client_disconnect(reds, mig_client->client); } } static bool reds_find_client(RedsState *reds, RedClient *client) { - GListIter iter; RedClient *list_client; - GLIST_FOREACH(reds->clients, iter, RedClient, list_client) { + GLIST_FOREACH(reds->clients, RedClient, list_client) { if (list_client == client) { return TRUE; } @@ -2964,13 +2958,12 @@ static void reds_mig_started(RedsState *reds) static void reds_mig_fill_wait_disconnect(RedsState *reds) { - GListIter iter; RedClient *client; spice_assert(reds->clients != NULL); /* tracking the clients, in order to ignore disconnection * of clients that got connected to the src after migration completion.*/ - GLIST_FOREACH(reds->clients, iter, RedClient, client) { + GLIST_FOREACH(reds->clients, RedClient, client) { reds->mig_wait_disconnect_clients = g_list_append(reds->mig_wait_disconnect_clients, client); } reds->mig_wait_connect = FALSE; @@ -4355,11 +4348,10 @@ void reds_update_client_mouse_allowed(RedsState *reds) int num_active_workers = g_list_length(reds->qxl_instances); if (num_active_workers > 0) { - GListIter it; QXLInstance *qxl; allow_now = TRUE; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { if (red_qxl_get_primary_active(qxl)) { allow_now = red_qxl_get_allow_client_mouse(qxl, &x_res, &y_res); break; @@ -4380,14 +4372,13 @@ void reds_update_client_mouse_allowed(RedsState *reds) static gboolean reds_use_client_monitors_config(RedsState *reds) { - GListIter it; QXLInstance *qxl; if (reds->qxl_instances == NULL) { return FALSE; } - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { if (!red_qxl_use_client_monitors_config(qxl)) return FALSE; } @@ -4396,10 +4387,9 @@ static gboolean reds_use_client_monitors_config(RedsState *reds) static void reds_client_monitors_config(RedsState *reds, VDAgentMonitorsConfig *monitors_config) { - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { if (!red_qxl_client_monitors_config(qxl, monitors_config)) { /* this is a normal condition, some qemu devices might not implement it */ spice_debug("QXLInterface::client_monitors_config failed\n"); @@ -4422,10 +4412,9 @@ static int calc_compression_level(RedsState *reds) void reds_on_ic_change(RedsState *reds) { int compression_level = calc_compression_level(reds); - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_set_compression_level(qxl, compression_level); red_qxl_on_ic_change(qxl, spice_server_get_image_compression(reds)); } @@ -4434,10 +4423,9 @@ void reds_on_ic_change(RedsState *reds) void reds_on_sv_change(RedsState *reds) { int compression_level = calc_compression_level(reds); - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_set_compression_level(qxl, compression_level); red_qxl_on_sv_change(qxl, reds_get_streaming_video(reds)); } @@ -4445,30 +4433,27 @@ void reds_on_sv_change(RedsState *reds) void reds_on_vc_change(RedsState *reds) { - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_on_vc_change(qxl, reds_get_video_codecs(reds)); } } void reds_on_vm_stop(RedsState *reds) { - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_stop(qxl); } } void reds_on_vm_start(RedsState *reds) { - GListIter it; QXLInstance *qxl; - FOREACH_QXL_INSTANCE(reds, it, qxl) { + FOREACH_QXL_INSTANCE(reds, qxl) { red_qxl_start(qxl); } } diff --git a/server/stream.c b/server/stream.c index ff2676cf..f74a1385 100644 --- a/server/stream.c +++ b/server/stream.c @@ -98,13 +98,12 @@ static RedPipeItem *stream_destroy_item_new(StreamAgent *agent) void stream_stop(DisplayChannel *display, Stream *stream) { DisplayChannelClient *dcc; - GListIter iter; spice_return_if_fail(ring_item_is_linked(&stream->link)); spice_return_if_fail(!stream->current); spice_debug("stream %d", display_channel_get_stream_id(display, stream)); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { StreamAgent *stream_agent; stream_agent = dcc_get_stream_agent(dcc, display_channel_get_stream_id(display, stream)); @@ -281,7 +280,6 @@ static bool is_next_stream_frame(DisplayChannel *display, static void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *stream) { DisplayChannelClient *dcc; - GListIter iter; spice_assert(drawable && stream); spice_assert(!drawable->stream && !stream->current); @@ -300,7 +298,7 @@ static void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *s stream->num_input_frames++; } - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { StreamAgent *agent; QRegion clip_in_draw_dest; @@ -381,7 +379,6 @@ static Stream *display_channel_stream_try_new(DisplayChannel *display) static void display_channel_create_stream(DisplayChannel *display, Drawable *drawable) { DisplayChannelClient *dcc; - GListIter iter; Stream *stream; SpiceRect* src_rect; @@ -418,7 +415,7 @@ static void display_channel_create_stream(DisplayChannel *display, Drawable *dra stream->input_fps_start_time = drawable->creation_time; display->priv->streams_size_total += stream->width * stream->height; display->priv->stream_count++; - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { dcc_create_stream(dcc, stream); } spice_debug("stream %d %dx%d (%d, %d) (%d, %d) %u fps", @@ -856,10 +853,9 @@ clear_vis_region: static void detach_stream_gracefully(DisplayChannel *display, Stream *stream, Drawable *update_area_limit) { - GListIter iter; DisplayChannelClient *dcc; - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { dcc_detach_stream_gracefully(dcc, stream, update_area_limit); } if (stream->current) { @@ -881,7 +877,6 @@ void stream_detach_behind(DisplayChannel *display, QRegion *region, Drawable *dr { Ring *ring = &display->priv->streams; RingItem *item = ring_get_head(ring); - GListIter iter; DisplayChannelClient *dcc; bool is_connected = red_channel_is_connected(RED_CHANNEL(display)); @@ -890,7 +885,7 @@ void stream_detach_behind(DisplayChannel *display, QRegion *region, Drawable *dr int detach = 0; item = ring_next(ring, item); - FOREACH_DCC(display, iter, dcc) { + FOREACH_DCC(display, dcc) { StreamAgent *agent = dcc_get_stream_agent(dcc, display_channel_get_stream_id(display, stream)); if (region_intersects(&agent->vis_region, region)) { -- 2.13.5 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel