[Spice-devel] [PATCH v3 3/4] use QXLState instead of RedDispatcher

Christophe Fergeau cfergeau at redhat.com
Fri Mar 4 15:41:52 UTC 2016


On Fri, Mar 04, 2016 at 03:13:27PM +0000, Frediano Ziglio wrote:
> Considering that:
> - QXLState is the state of QXLInstance implementation;
> - RedDispatcher is the implementation of QXL;
> - qif (QXLInterface*) field can be computed really easy from QXLInstance;
> - most of its state is private.
> Make all structure private and use QXLState instead of RedDispatcher.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
>  server/cursor-channel.c  |   2 +-
>  server/dcc-send.c        |  17 +-
>  server/dcc.c             |   4 +-
>  server/display-channel.c |   8 +-
>  server/red-qxl.c         | 499 +++++++++++++++++++++++++----------------------
>  server/red-qxl.h         |  37 ++--
>  server/red-worker.c      |  57 +++---
>  server/red-worker.h      |   2 +-
>  server/reds-private.h    |   2 +-
>  server/reds.c            |  80 ++++----
>  server/reds.h            |  11 +-
>  11 files changed, 372 insertions(+), 347 deletions(-)
> 
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index 268e34f..f5cb5ee 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -116,7 +116,7 @@ static void cursor_item_unref(CursorItem *item)
>          return;
>  
>      cursor_cmd = item->red_cursor;
> -    item->qxl->st->qif->release_resource(item->qxl, cursor_cmd->release_info_ext);
> +    qxl_get_interface(item->qxl)->release_resource(item->qxl, cursor_cmd->release_info_ext);

For what it's worth, this could even become
red_qxl_interface_release_resource(item->qxl, cursor_cmd->release_resource_ext)
if we want to hide the function pointers.

> diff --git a/server/red-worker.h b/server/red-worker.h
> index e51e261..0f9cf61 100644
> --- a/server/red-worker.h
> +++ b/server/red-worker.h
> @@ -90,7 +90,7 @@ static inline void red_pipes_add_verb(RedChannel *channel, uint16_t verb)
>      }
>  }
>  
> -RedWorker* red_worker_new(QXLInstance *qxl, RedDispatcher *red_dispatcher);
> +RedWorker* red_worker_new(QXLInstance *qxl, QXLState *qxl_state);
>  bool       red_worker_run(RedWorker *worker);
>  RedChannel* red_worker_get_cursor_channel(RedWorker *worker);
>  RedChannel* red_worker_get_display_channel(RedWorker *worker);
> diff --git a/server/reds-private.h b/server/reds-private.h
> index f567929..7877c73 100644
> --- a/server/reds-private.h
> +++ b/server/reds-private.h
> @@ -241,7 +241,7 @@ struct RedsState {
>  
>      RedSSLParameters ssl_parameters;
>      SpiceCoreInterfaceInternal *core;
> -    GList *dispatchers;
> +    GList *red_qxls;

qxl_states rather than red_qxls maybe?

Looks good either way,

Acked-by: Christophe Fergeau <cfergeau at redhat.com>

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160304/d73a7da9/attachment.sig>


More information about the Spice-devel mailing list