Re: [PATCH 02/15] Make global 'reds' extern

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2016-01-14 at 09:38 -0500, Frediano Ziglio wrote:
> > 
> > From: Jonathon Jongsma <jjongsma@xxxxxxxxxx>
> > 
> > This allows it to be accessed from other files. This is a temporary step
> > toward getting rid of the global-ness of this variable, and it allows us
> > to update the function signature bit-by-bit.
> > ---
> >  server/reds-private.h | 4 ++--
> >  server/reds.c         | 2 +-
> >  server/reds.h         | 3 +++
> >  3 files changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/server/reds-private.h b/server/reds-private.h
> > index 7f4f04f..6d76943 100644
> > --- a/server/reds-private.h
> > +++ b/server/reds-private.h
> > @@ -135,7 +135,7 @@ typedef struct RedsClientMonitorsConfig {
> >      int buffer_pos;
> >  } RedsClientMonitorsConfig;
> >  
> > -typedef struct RedsState {
> > +struct RedsState {
> >      int listen_socket;
> >      int secure_listen_socket;
> >      SpiceWatch *listen_watch;
> > @@ -189,6 +189,6 @@ typedef struct RedsState {
> >      RedsClientMonitorsConfig client_monitors_config;
> >      int mm_time_enabled;
> >      uint32_t mm_time_latency;
> > -} RedsState;
> > +};
> >  
> >  #endif
> > diff --git a/server/reds.c b/server/reds.c
> > index bee2574..1b877aa 100644
> > --- a/server/reds.c
> > +++ b/server/reds.c
> > @@ -175,7 +175,7 @@ int agent_copypaste = TRUE;
> >  int agent_file_xfer = TRUE;
> >  static bool exit_on_disconnect = FALSE;
> >  
> > -static RedsState *reds = NULL;
> > +RedsState *reds = NULL;
> >  
> >  typedef struct RedLinkInfo {
> >      RedsStream *stream;
> > diff --git a/server/reds.h b/server/reds.h
> > index f3a9ce4..8e6e136 100644
> > --- a/server/reds.h
> > +++ b/server/reds.h
> > @@ -30,6 +30,9 @@
> >  #include "red-channel.h"
> >  #include "migration-protocol.h"
> >  
> > +typedef struct RedsState RedsState;
> > +extern RedsState *reds;
> > +
> 
> Why not just exporting this global as
> 
>   extern struct RedsState *reds;
> 
> removing all other changes?
> At the end of these patches the variable is removed.

The typedef was moved from the private header to the public header so that we
can use this shorter type in other files that don't have access to the private
implementation of RedsState. So, function arguments can use "RedsState*"  rather
than having to use "struct RedsState*" everywhere. It doesn't need to be done in
the same commit that changes the variable to external linkage, but I think we
should still move this typedef to the 'public' header at some point so that
different files can refer to this type consistently.

Jonathon

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]