[Spice-devel] [PATCH 3.2/12] Make cursor_channel_disconnect a CursorChannel method

Frediano Ziglio fziglio at redhat.com
Fri Oct 30 04:06:59 PDT 2015


> 
> On Thu, Oct 29, 2015 at 04:54:39PM -0500, Jonathon Jongsma wrote:
> > From: Marc-André Lureau <marcandre.lureau at gmail.com>
> > 
> > The first argument should be CursorChannel* rather than RedChannel*
> > since it's essentially a CursorChannel method.
> > 
> > Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> > ---
> >  server/cursor-channel.c | 4 +++-
> >  server/cursor-channel.h | 2 +-
> >  server/red_worker.c     | 2 +-
> >  3 files changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> > index 2d7afc6..219c1da 100644
> > --- a/server/cursor-channel.c
> > +++ b/server/cursor-channel.c
> > @@ -138,8 +138,10 @@ static void red_reset_cursor_cache(RedChannelClient
> > *rcc)
> >      red_cursor_cache_reset(RCC_TO_CCC(rcc), CLIENT_CURSOR_CACHE_SIZE);
> >  }
> >  
> > -void cursor_channel_disconnect(RedChannel *channel)
> > +void cursor_channel_disconnect(CursorChannel *cursor)
> >  {
> > +    RedChannel *channel = (RedChannel *)cursor;
> > +
> >      if (!channel || !red_channel_is_connected(channel)) {
> >          return;
> >      }
> > diff --git a/server/cursor-channel.h b/server/cursor-channel.h
> > index 8b49df7..c7eee81 100644
> > --- a/server/cursor-channel.h
> > +++ b/server/cursor-channel.h
> > @@ -79,7 +79,7 @@ typedef struct CursorChannel {
> >  G_STATIC_ASSERT(sizeof(CursorItem) <= QXL_CURSUR_DEVICE_DATA_SIZE);
> >  
> >  CursorChannel*       cursor_channel_new         (RedWorker *worker, int
> >  migrate);
> > -void                 cursor_channel_disconnect  (RedChannel *channel);
> > +void                 cursor_channel_disconnect  (CursorChannel *cursor);
> >  void                 cursor_channel_reset       (CursorChannel *cursor);
> >  void                 cursor_channel_process_cmd (CursorChannel *cursor,
> >  RedCursorCmd *cursor_cmd,
> >                                                   uint32_t group_id);
> > diff --git a/server/red_worker.c b/server/red_worker.c
> > index 96c0f14..2543713 100644
> > --- a/server/red_worker.c
> > +++ b/server/red_worker.c
> > @@ -8908,7 +8908,7 @@ static inline void flush_cursor_commands(RedWorker
> > *worker)
> >              red_channel_send(channel);
> >              if (red_now() >= end_time) {
> >                  spice_warning("flush cursor timeout");
> > -                cursor_channel_disconnect(channel);
> > +                cursor_channel_disconnect(worker->cursor_channel);
> >                  worker->cursor_channel = NULL;
> >              } else {
> >                  sleep_count++;
> 
> Fwiw, this method has 'channel', 'cursor_red_channel' (both are
> RedChannel *) and it also references 'worker->cursor_channel' as a
> CursorChannel. Ultimately these 3 variables are referencing to the same
> memory location, would be less messy to have 2 (one RedChannel, one
> CursorChannel) defined together, or not to have any and to use
> worker->cursor_channel + cast if needed everywhere.
> 
> Christophe

Sorry, was confusing.
I was referring at the "cursor" name. In order lines is cursor_channel.

Frediano


More information about the Spice-devel mailing list