[Spice-devel] [PATCH] Avoid recursive inclusion of headers
Frediano Ziglio
fziglio at redhat.com
Wed Sep 14 10:37:29 UTC 2016
>
> On Mon, 2016-09-12 at 12:53 +0100, Frediano Ziglio wrote:
> > red-common.h included utils.h which included red-common.h
> >
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> > server/main-channel-client.c | 1 +
> > server/red-channel-client.c | 1 +
> > server/red-common.h | 1 -
> > server/red-worker.h | 1 +
> > server/sound.c | 1 +
> > server/spicevmc.c | 1 +
> > 6 files changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/server/main-channel-client.c b/server/main-channel-
> > client.c
> > index 236a2e7..5c3ab93 100644
> > --- a/server/main-channel-client.c
> > +++ b/server/main-channel-client.c
> > @@ -27,6 +27,7 @@
> > #include "main-channel.h"
> > #include "red-channel-client.h"
> > #include "reds.h"
> > +#include "utils.h"
> >
> > #define NET_TEST_WARMUP_BYTES 0
> > #define NET_TEST_BYTES (1024 * 250)
> > diff --git a/server/red-channel-client.c b/server/red-channel-
> > client.c
> > index 0eed02b..315160e 100644
> > --- a/server/red-channel-client.c
> > +++ b/server/red-channel-client.c
> > @@ -36,6 +36,7 @@
> > #include "red-channel-client.h"
> > #include "red-channel-client-private.h"
> > #include "red-channel.h"
> > +#include "utils.h"
> >
> > #define PING_TEST_TIMEOUT_MS (MSEC_PER_SEC * 15)
> > #define PING_TEST_IDLE_NET_TIMEOUT_MS (MSEC_PER_SEC / 10)
> > diff --git a/server/red-common.h b/server/red-common.h
> > index 7ab7e15..9e75f51 100644
> > --- a/server/red-common.h
> > +++ b/server/red-common.h
> > @@ -36,7 +36,6 @@
> > #include <common/verify.h>
> >
> > #include "spice.h"
> > -#include "utils.h"
> >
> > #define SPICE_UPCAST(type, ptr) \
> > (verify_expr(SPICE_OFFSETOF(type, base) ==
> > 0,SPICE_CONTAINEROF(ptr, type, base)))
> > diff --git a/server/red-worker.h b/server/red-worker.h
> > index a0a327a..28c1c6f 100644
> > --- a/server/red-worker.h
> > +++ b/server/red-worker.h
> > @@ -19,6 +19,7 @@
> > #define _H_REDWORKER
> >
> > #include "red-common.h"
> > +#include "utils.h"
> > #include "red-qxl.h"
> > #include "red-parse-qxl.h"
> > #include "red-channel-client.h"
> > diff --git a/server/sound.c b/server/sound.c
> > index c08bb35..176169f 100644
> > --- a/server/sound.c
> > +++ b/server/sound.c
> > @@ -31,6 +31,7 @@
> >
> > #include "spice.h"
> > #include "red-common.h"
> > +#include "utils.h"
> > #include "main-channel.h"
> > #include "reds.h"
> > #include "red-qxl.h"
> > diff --git a/server/spicevmc.c b/server/spicevmc.c
> > index 3533f3f..819d42c 100644
> > --- a/server/spicevmc.c
> > +++ b/server/spicevmc.c
> > @@ -30,6 +30,7 @@
> >
> > #include <common/generated_server_marshallers.h>
> >
> > +#include "utils.h"
> > #include "char-device.h"
> > #include "red-channel.h"
> > #include "red-channel-client.h"
>
>
>
> Wouldn't it be easier to do something like this instead?
>
>
>
> diff --git a/server/utils.h b/server/utils.h
> index 00631f8..51d7630 100644
> --- a/server/utils.h
> +++ b/server/utils.h
> @@ -18,7 +18,7 @@
> #ifndef UTILS_H_
> # define UTILS_H_
>
> -#include "red-common.h"
> +#include <stdint.h>
>
> #define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
>
>
> ----
>
> *not sure if stdint.h is really the only one necessary, but it seems to
> compile fine in a very brief test...
>
glib.h is required too but with these 2 includes everything works.
The patch was quite old so maybe there were different reason why was done this way.
Time ago red-common.h was not included everywhere.
I'll post a new version.
Frediano
More information about the Spice-devel
mailing list