glu: Fix some compiler warnings in libtess
authorNeil Roberts <neil@linux.intel.com>
Wed, 30 Jun 2010 11:41:11 +0000 (12:41 +0100)
committerBrian Paul <brianp@vmware.com>
Wed, 30 Jun 2010 13:59:39 +0000 (07:59 -0600)
When compiled with the more aggressive compiler warnings such as
-Wshadow and -Wempty-body the libtess code gives a lot more
warnings. This fixes the following issues:

* The 'Swap' macro tries to combine multiple statements into one and
  then consume the trailing semicolon by using if(1){/*...*/}else.
  This gives warnings because the else part ends up with an empty
  statement. It also seems a bit dangerous because if the semicolon
  were missed then it would still be valid syntax but it would just
  ignore the following statement. This patch replaces it with the more
  common idiom do { /*...*/ } while(0).

* 'free' was being used as a local variable name but this shadows the
  global function. This has been renamed to 'free_handle'

* TRUE and FALSE were being unconditionally defined. Although this
  isn't currently a problem it seems better to guard them with #ifndef
  because it's quite common for them to be defined in other headers.

https://bugs.freedesktop.org/show_bug.cgi?id=28845

Signed-off-by: Brian Paul <brianp@vmware.com>
src/glu/sgi/libtess/geom.c
src/glu/sgi/libtess/mesh.c
src/glu/sgi/libtess/normal.c
src/glu/sgi/libtess/priorityq-heap.c
src/glu/sgi/libtess/priorityq.c
src/glu/sgi/libtess/render.c
src/glu/sgi/libtess/sweep.c
src/glu/sgi/libtess/tess.c

index 7d3b8d8a6a57abfb4811ead281cffbfc178863fa..35b36a394c4f3fb79c014c9148cfc0190713996b 100644 (file)
@@ -198,7 +198,7 @@ printf("*********************%d\n",RandomInterpolate);
 
 #endif
 
-#define Swap(a,b)      if (1) { GLUvertex *t = a; a = b; b = t; } else
+#define Swap(a,b)      do { GLUvertex *t = a; a = b; b = t; } while (0)
 
 void __gl_edgeIntersect( GLUvertex *o1, GLUvertex *d1,
                         GLUvertex *o2, GLUvertex *d2,
index 95f87cdc9499dd118d80986137a9ddfcc46fe7b1..36cb3a7be29aa637fa0adc4a6c69d9575b6a8a43 100644 (file)
 #include "mesh.h"
 #include "memalloc.h"
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 static GLUvertex *allocVertex()
 {
index 7ab83167bbdbc28ade3bf5a5b0f08ea31185e003..9a3bd43d3c9ef84c39f1aae406a6fc4a3568ac88 100644 (file)
 #include <math.h>
 #include <assert.h>
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 #define Dot(u,v)       (u[0]*v[0] + u[1]*v[1] + u[2]*v[2])
 
index e3a6c6068a0d4b70425e4e6699d0ce9c88417933..52698b59cc53597b2dbbbcc0827bcbb4d92acc6a 100644 (file)
 
 #define INIT_SIZE      32
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 #ifdef FOR_TRITE_TEST_PROGRAM
 #define LEQ(x,y)       (*pq->leq)(x,y)
@@ -159,7 +163,7 @@ void pqInit( PriorityQ *pq )
 PQhandle pqInsert( PriorityQ *pq, PQkey keyNew )
 {
   long curr;
-  PQhandle free;
+  PQhandle free_handle;
 
   curr = ++ pq->size;
   if( (curr*2) > pq->max ) {
@@ -186,21 +190,21 @@ PQhandle pqInsert( PriorityQ *pq, PQkey keyNew )
   }
 
   if( pq->freeList == 0 ) {
-    free = curr;
+    free_handle = curr;
   } else {
-    free = pq->freeList;
-    pq->freeList = pq->handles[free].node;
+    free_handle = pq->freeList;
+    pq->freeList = pq->handles[free_handle].node;
   }
 
-  pq->nodes[curr].handle = free;
-  pq->handles[free].node = curr;
-  pq->handles[free].key = keyNew;
+  pq->nodes[curr].handle = free_handle;
+  pq->handles[free_handle].node = curr;
+  pq->handles[free_handle].key = keyNew;
 
   if( pq->initialized ) {
     FloatUp( pq, curr );
   }
-  assert(free != LONG_MAX);
-  return free;
+  assert(free_handle != LONG_MAX);
+  return free_handle;
 }
 
 /* really __gl_pqHeapExtractMin */
index 11f0263ac93e595302653e4d1bb6599240e79a22..c6b99cce55200f85daada9db4b01823964821f99 100644 (file)
@@ -85,7 +85,7 @@ void pqDeletePriorityQ( PriorityQ *pq )
 
 #define LT(x,y)                (! LEQ(y,x))
 #define GT(x,y)                (! LEQ(x,y))
-#define Swap(a,b)      if(1){PQkey *tmp = *a; *a = *b; *b = tmp;}else
+#define Swap(a,b)      do{PQkey *tmp = *a; *a = *b; *b = tmp;}while(0)
 
 /* really __gl_pqSortInit */
 int pqInit( PriorityQ *pq )
index 4f376f7f42526e0da3b8883a58c261d872bdefdc..bca836f0467c1d6c1dcea6fea6ce1ed92c342e85 100644 (file)
 #include "tess.h"
 #include "render.h"
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 /* This structure remembers the information we need about a primitive
  * to be able to render it later, once we have determined which
@@ -143,11 +147,11 @@ static void RenderMaximumFaceGroup( GLUtesselator *tess, GLUface *fOrig )
 
 #define AddToTrail(f,t)        ((f)->trail = (t), (t) = (f), (f)->marked = TRUE)
 
-#define FreeTrail(t)   if( 1 ) { \
+#define FreeTrail(t)   do { \
                          while( (t) != NULL ) { \
                            (t)->marked = FALSE; t = (t)->trail; \
                          } \
-                       } else /* absorb trailing semicolon */
+                       } while(0) /* absorb trailing semicolon */
 
 
 
index 744be6b47d73a87a76b1ef71637da08e946c7a53..eca828ff67fffd4b6ebd556bac63434fa12c9921 100644 (file)
 #include "memalloc.h"
 #include "sweep.h"
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 #ifdef FOR_TRITE_TEST_PROGRAM
 extern void DebugEvent( GLUtesselator *tess );
index 029a02c3ae44dc46b3268e2e77b7ea0bae2ff25b..4a0e8dea7f79988bf35b6872f5f2f2a611234135 100644 (file)
 #define GLU_TESS_DEFAULT_TOLERANCE 0.0
 #define GLU_TESS_MESH          100112  /* void (*)(GLUmesh *mesh)          */
 
+#ifndef TRUE
 #define TRUE 1
+#endif
+#ifndef FALSE
 #define FALSE 0
+#endif
 
 /*ARGSUSED*/ static void GLAPIENTRY noBegin( GLenum type ) {}
 /*ARGSUSED*/ static void GLAPIENTRY noEdgeFlag( GLboolean boundaryEdge ) {}