[Spice-devel] [spice-server 1/3] Remove duplicate typedef from headers

Frediano Ziglio fziglio at redhat.com
Wed Mar 30 15:37:41 UTC 2016


> 
> On Wed, Mar 30, 2016 at 09:15:07AM -0400, Frediano Ziglio wrote:
> > > 
> > > This is causing compile errors with older gcc versions.
> > > 
> > > reds.h includes reds-stream.h through red-channel.h so it will get the
> > > RedsState typedef this way.
> > > 
> > > red-qxl.h includes spice-qxl.h through red-channel.h and then spice.h,
> > > so it will get the QXLState typedef this way.
> > > ---
> > >  server/red-qxl.h | 2 --
> > >  server/reds.h    | 2 --
> > >  2 files changed, 4 deletions(-)
> > > 
> > > diff --git a/server/red-qxl.h b/server/red-qxl.h
> > > index b1ebbe1..ce80f97 100644
> > > --- a/server/red-qxl.h
> > > +++ b/server/red-qxl.h
> > > @@ -20,8 +20,6 @@
> > >  
> > >  #include "red-channel.h"
> > >  
> > > -typedef struct QXLState QXLState;
> > > -
> > >  typedef struct AsyncCommand AsyncCommand;
> > >  
> > >  void red_qxl_init(SpiceServer *reds, QXLInstance *qxl);
> > 
> > This is defined in public headers already so this hunk is fine.
> > 
> > > diff --git a/server/reds.h b/server/reds.h
> > > index 5966dc3..c2968c2 100644
> > > --- a/server/reds.h
> > > +++ b/server/reds.h
> > > @@ -31,8 +31,6 @@
> > >  #include "main-dispatcher.h"
> > >  #include "migration-protocol.h"
> > >  
> > > -typedef struct RedsState RedsState;
> > > -
> > >  static inline QXLInterface * qxl_get_interface(QXLInstance *qxl)
> > >  {
> > >      return SPICE_CONTAINEROF(qxl->base.sif, QXLInterface, base);
> > 
> > This is defined in reds-stream.h and reds.h, I think be best place is
> > reds.h as it's the global state implemented in reds.h
> 
> Then reds-stream.h would need an additional #include "reds.h" as
> otherwise build fails as some places are including reds-stream.h without
> including reds.h
> 
> Christophe
> 

You can either use "struct RedsState" or "SpiceServer".
There is only a single occurrence in reds-stream.h.

Frediano


More information about the Spice-devel mailing list