[Spice-devel] [PATCH spice-server] char-device: Reuse macros to scan GList

Victor Toso victortoso at redhat.com
Mon Jun 10 12:08:36 UTC 2019


On Mon, Jun 03, 2019 at 09:22:34AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>

Looks fine,
Acked-by: Victor Toso <victortoso at redhat.com>

> ---
>  server/char-device.c | 27 ++++++++-------------------
>  1 file changed, 8 insertions(+), 19 deletions(-)
> 
> diff --git a/server/char-device.c b/server/char-device.c
> index 9ee255664..caabdd3e1 100644
> --- a/server/char-device.c
> +++ b/server/char-device.c
> @@ -224,11 +224,9 @@ static void red_char_device_handle_client_overflow(RedCharDeviceClient *dev_clie
>  static RedCharDeviceClient *red_char_device_client_find(RedCharDevice *dev,
>                                                          RedClient *client)
>  {
> -    GList *item;
> -
> -    for (item = dev->priv->clients; item != NULL; item = item->next) {
> -        RedCharDeviceClient *dev_client = item->data;
> +    RedCharDeviceClient *dev_client;
>  
> +    GLIST_FOREACH(dev->priv->clients, RedCharDeviceClient, dev_client) {
>          if (dev_client->client == client) {
>              return dev_client;
>          }
> @@ -254,12 +252,10 @@ static int red_char_device_can_send_to_client(RedCharDeviceClient *dev_client)
>  
>  static uint64_t red_char_device_max_send_tokens(RedCharDevice *dev)
>  {
> -    GList *item;
> +    RedCharDeviceClient *dev_client;
>      uint64_t max = 0;
>  
> -    for (item = dev->priv->clients; item != NULL; item = item->next) {
> -        RedCharDeviceClient *dev_client = item->data;
> -
> +    GLIST_FOREACH(dev->priv->clients, RedCharDeviceClient, dev_client) {
>          if (!dev_client->do_flow_control) {
>              max = ~0;
>              break;
> @@ -294,13 +290,9 @@ static void red_char_device_add_msg_to_client_queue(RedCharDeviceClient *dev_cli
>  static void red_char_device_send_msg_to_clients(RedCharDevice *dev,
>                                                  RedPipeItem *msg)
>  {
> -    GList *l;
> -
> -    l = dev->priv->clients;
> -    while (l) {
> -        GList *next = l->next;
> -        RedCharDeviceClient *dev_client = l->data;
> +    RedCharDeviceClient *dev_client;
>  
> +    GLIST_FOREACH(dev->priv->clients, RedCharDeviceClient, dev_client) {
>          if (red_char_device_can_send_to_client(dev_client)) {
>              dev_client->num_send_tokens--;
>              spice_assert(g_queue_is_empty(dev_client->send_queue));
> @@ -310,7 +302,6 @@ static void red_char_device_send_msg_to_clients(RedCharDevice *dev,
>          } else {
>              red_char_device_add_msg_to_client_queue(dev_client, msg);
>          }
> -        l = next;
>      }
>  }
>  
> @@ -823,7 +814,7 @@ void red_char_device_stop(RedCharDevice *dev)
>  
>  void red_char_device_reset(RedCharDevice *dev)
>  {
> -    GList *client_item;
> +    RedCharDeviceClient *dev_client;
>      RedCharDeviceWriteBuffer *buf;
>  
>      dev->priv->wait_for_migrate_data = FALSE;
> @@ -833,9 +824,7 @@ void red_char_device_reset(RedCharDevice *dev)
>      }
>      red_char_device_write_buffer_release(dev, &dev->priv->cur_write_buf);
>  
> -    for (client_item = dev->priv->clients; client_item != NULL; client_item = client_item->next) {
> -        RedCharDeviceClient *dev_client = client_item->data;
> -
> +    GLIST_FOREACH(dev->priv->clients, RedCharDeviceClient, dev_client) {
>          spice_debug("send_queue_empty %d", g_queue_is_empty(dev_client->send_queue));
>          dev_client->num_send_tokens += g_queue_get_length(dev_client->send_queue);
>          g_queue_free_full(dev_client->send_queue, (GDestroyNotify)red_pipe_item_unref);
> -- 
> 2.20.1
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190610/6c15806c/attachment.sig>


More information about the Spice-devel mailing list