[Spice-devel] [PATCH 05/23] simplify release of CREATE_SURFACE and DESTROY_SURFACE pipe items

Jonathon Jongsma jjongsma at redhat.com
Tue May 17 19:47:14 UTC 2016


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

On Mon, 2016-05-16 at 14:31 +0100, Frediano Ziglio wrote:
> Putting base as first item the default free function is fine.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/dcc.c             | 16 ++--------------
>  server/dcc.h             |  2 +-
>  server/display-channel.h |  2 +-
>  3 files changed, 4 insertions(+), 16 deletions(-)
> 
> diff --git a/server/dcc.c b/server/dcc.c
> index 6f08cd9..a6d4fc4 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -1653,24 +1653,12 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, RedPipeItem *ite
>      case RED_PIPE_ITEM_TYPE_UPGRADE:
>      case RED_PIPE_ITEM_TYPE_IMAGE:
>      case RED_PIPE_ITEM_TYPE_MONITORS_CONFIG:
> -        red_pipe_item_unref(item);
> -        break;
> -    case RED_PIPE_ITEM_TYPE_CREATE_SURFACE: {
> -        RedSurfaceCreateItem *surface_create = SPICE_CONTAINEROF(item,
> RedSurfaceCreateItem,
> -                                                                 pipe_item);
> -        free(surface_create);
> -        break;
> -    }
> -    case RED_PIPE_ITEM_TYPE_DESTROY_SURFACE: {
> -        RedSurfaceDestroyItem *surface_destroy = SPICE_CONTAINEROF(item,
> RedSurfaceDestroyItem,
> -                                                                  
>  pipe_item);
> -        free(surface_destroy);
> -        break;
> -    }
> +    case RED_PIPE_ITEM_TYPE_CREATE_SURFACE:
>      case RED_PIPE_ITEM_TYPE_INVAL_ONE:
>      case RED_PIPE_ITEM_TYPE_VERB:
>      case RED_PIPE_ITEM_TYPE_MIGRATE_DATA:
>      case RED_PIPE_ITEM_TYPE_PIXMAP_SYNC:
> +    case RED_PIPE_ITEM_TYPE_DESTROY_SURFACE:
>      case RED_PIPE_ITEM_TYPE_PIXMAP_RESET:
>      case RED_PIPE_ITEM_TYPE_INVAL_PALETTE_CACHE:
>      case RED_PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT:
> diff --git a/server/dcc.h b/server/dcc.h
> index 89934bc..63a7496 100644
> --- a/server/dcc.h
> +++ b/server/dcc.h
> @@ -122,8 +122,8 @@ struct DisplayChannelClient {
>  #define RCC_TO_DCC(rcc) SPICE_CONTAINEROF((rcc), DisplayChannelClient,
> common.base)
>  
>  typedef struct RedSurfaceCreateItem {
> -    SpiceMsgSurfaceCreate surface_create;
>      RedPipeItem pipe_item;
> +    SpiceMsgSurfaceCreate surface_create;
>  } RedSurfaceCreateItem;
>  
>  typedef struct RedGlScanoutUnixItem {
> diff --git a/server/display-channel.h b/server/display-channel.h
> index 76668de..647d8c0 100644
> --- a/server/display-channel.h
> +++ b/server/display-channel.h
> @@ -241,8 +241,8 @@ static inline int get_stream_id(DisplayChannel *display,
> Stream *stream)
>  }
>  
>  typedef struct RedSurfaceDestroyItem {
> -    SpiceMsgSurfaceDestroy surface_destroy;
>      RedPipeItem pipe_item;
> +    SpiceMsgSurfaceDestroy surface_destroy;
>  } RedSurfaceDestroyItem;
>  
>  typedef struct RedUpgradeItem {


More information about the Spice-devel mailing list