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

Frediano Ziglio fziglio at redhat.com
Fri Mar 4 15:53:16 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.
> 

Actually this could even became a no-op :)
I forget about this detail... must be in one of my patches...

> > 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?
> 

Changed.

> Looks good either way,
> 
> Acked-by: Christophe Fergeau <cfergeau at redhat.com>
> 
> Christophe
> 

Going to do some rebases now... or a bit later

Frediano


More information about the Spice-devel mailing list