From 00438c9f943b219ba33055969ae7f9ba07214b2a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 15 Nov 2013 05:41:54 -0800 Subject: exa: Clean up warnings Declare GC ops/funcs as const. Use 'typeof' in the 'swap' macro to capture the right type. Signed-off-by: Keith Packard Reviewed-by: Adam Jackson --- exa/exa.c | 4 ++-- exa/exa_priv.h | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'exa') diff --git a/exa/exa.c b/exa/exa.c index f8e499c2b..e96173353 100644 --- a/exa/exa.c +++ b/exa/exa.c @@ -620,8 +620,8 @@ exaCreateGC(GCPtr pGC) swap(pExaScr, pScreen, CreateGC); if ((ret = (*pScreen->CreateGC) (pGC))) { - wrap(pExaGC, pGC, funcs, (GCFuncs *) &exaGCFuncs); - wrap(pExaGC, pGC, ops, (GCOps *) &exaOps); + wrap(pExaGC, pGC, funcs, &exaGCFuncs); + wrap(pExaGC, pGC, ops, &exaOps); } swap(pExaScr, pScreen, CreateGC); diff --git a/exa/exa_priv.h b/exa/exa_priv.h index 1f5605687..aba3934fa 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -248,11 +248,19 @@ extern DevPrivateKeyRec exaScreenPrivateKeyRec; real->mem = priv->Saved##mem; \ } +#ifdef HAVE_TYPEOF +#define swap(priv, real, mem) {\ + typeof(real->mem) tmp = priv->Saved##mem; \ + priv->Saved##mem = real->mem; \ + real->mem = tmp; \ +} +#else #define swap(priv, real, mem) {\ void *tmp = priv->Saved##mem; \ priv->Saved##mem = real->mem; \ real->mem = tmp; \ } +#endif #define EXA_PRE_FALLBACK(_screen_) \ ExaScreenPriv(_screen_); \ @@ -333,8 +341,8 @@ typedef struct { typedef struct { /* GC values from the layer below. */ - GCOps *Savedops; - GCFuncs *Savedfuncs; + const GCOps *Savedops; + const GCFuncs *Savedfuncs; } ExaGCPrivRec, *ExaGCPrivPtr; typedef struct { -- cgit v1.2.3