[Spice-devel] [PATCH 02/11] Handle reference for RedPipeItem in RedChannel

Jonathon Jongsma jjongsma at redhat.com
Fri May 20 20:24:44 UTC 2016


Better.

Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Fri, 2016-05-20 at 14:01 +0100, Frediano Ziglio wrote:
> Remove the need to release the item inside send_item callbacks.
> This looks like a partial rollback of previous patch but is
> to make clear the intention of the change.
> The lifetime of items could extend a bit further but there
> are no cases this small lag should cause problems.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/cursor-channel.c | 1 -
>  server/dcc-send.c       | 2 --
>  server/inputs-channel.c | 1 -
>  server/main-channel.c   | 2 --
>  server/red-channel.c    | 2 +-
>  server/smartcard.c      | 2 --
>  server/spicevmc.c       | 2 --
>  7 files changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index 104bf51..949cbc4 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -336,7 +336,6 @@ static void cursor_channel_send_item(RedChannelClient
> *rcc, RedPipeItem *pipe_it
>          spice_error("invalid pipe item type");
>      }
>  
> -    red_pipe_item_unref(pipe_item);
>      red_channel_client_begin_send_message(rcc);
>  }
>  
> diff --git a/server/dcc-send.c b/server/dcc-send.c
> index f0f2e16..05da07f 100644
> --- a/server/dcc-send.c
> +++ b/server/dcc-send.c
> @@ -2455,8 +2455,6 @@ void dcc_send_item(DisplayChannelClient *dcc,
> RedPipeItem *pipe_item)
>          spice_warn_if_reached();
>      }
>  
> -    red_pipe_item_unref(pipe_item);
> -
>      // a message is pending
>      if (red_channel_client_send_message_pending(rcc)) {
>          begin_send_message(rcc);
> diff --git a/server/inputs-channel.c b/server/inputs-channel.c
> index 3218a48..4b5813f 100644
> --- a/server/inputs-channel.c
> +++ b/server/inputs-channel.c
> @@ -289,7 +289,6 @@ static void inputs_channel_send_item(RedChannelClient
> *rcc, RedPipeItem *base)
>              spice_warning("invalid pipe iten %d", base->type);
>              break;
>      }
> -    red_pipe_item_unref(base);
>      red_channel_client_begin_send_message(rcc);
>  }
>  
> diff --git a/server/main-channel.c b/server/main-channel.c
> index 219212c..70aaff7 100644
> --- a/server/main-channel.c
> +++ b/server/main-channel.c
> @@ -723,7 +723,6 @@ static void main_channel_send_item(RedChannelClient *rcc,
> RedPipeItem *base)
>          spice_printerr("Init msg for client %p was not sent yet "
>                         "(client is probably during semi-seamless migration).
> Ignoring msg type %d",
>                     rcc->client, base->type);
> -        red_pipe_item_unref(base);
>          return;
>      }
>      switch (base->type) {
> @@ -789,7 +788,6 @@ static void main_channel_send_item(RedChannelClient *rcc,
> RedPipeItem *base)
>              main_channel_marshall_agent_connected(m, rcc, base);
>              break;
>      };
> -    red_pipe_item_unref(base);
>      red_channel_client_begin_send_message(rcc);
>  }
>  
> diff --git a/server/red-channel.c b/server/red-channel.c
> index 8226bc4..23defc0 100644
> --- a/server/red-channel.c
> +++ b/server/red-channel.c
> @@ -576,7 +576,7 @@ static void red_channel_client_send_item(RedChannelClient
> *rcc, RedPipeItem *ite
>              break;
>          default:
>              rcc->channel->channel_cbs.send_item(rcc, item);
> -            return;
> +            break;
>      }
>      red_pipe_item_unref(item);
>  }
> diff --git a/server/smartcard.c b/server/smartcard.c
> index e68ccdc..c39aeae 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -498,10 +498,8 @@ static void smartcard_channel_send_item(RedChannelClient
> *rcc, RedPipeItem *item
>          break;
>      default:
>          spice_error("bad pipe item %d", item->type);
> -        red_pipe_item_unref(item);
>          return;
>      }
> -    red_pipe_item_unref(item);
>      red_channel_client_begin_send_message(rcc);
>  }
>  
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index be51d54..1e68909 100644
> --- a/server/spicevmc.c
> +++ b/server/spicevmc.c
> @@ -425,10 +425,8 @@ static void
> spicevmc_red_channel_send_item(RedChannelClient *rcc,
>          break;
>      default:
>          spice_error("bad pipe item %d", item->type);
> -        red_pipe_item_unref(item);
>          return;
>      }
> -    red_pipe_item_unref(item);
>      red_channel_client_begin_send_message(rcc);
>  }
>  


More information about the Spice-devel mailing list