From 5684349d56d1e8274a06be466a464a4da50df0a8 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Mon, 15 Nov 2010 12:12:28 +0000 Subject: [PATCH] fix G_STMT oopses --- ChangeLog | 1 + libvips/include/vips/debug.h | 16 ++++++------ libvips/include/vips/util.h | 49 ++++++++++++++++++------------------ libvips/morphology/im_rank.c | 2 +- 4 files changed, 35 insertions(+), 33 deletions(-) diff --git a/ChangeLog b/ChangeLog index fce78806..03010510 100644 --- a/ChangeLog +++ b/ChangeLog @@ -46,6 +46,7 @@ - im_profile() works for any image format, any number of bands - im_rank_image() works for mix of formats, bands - morph gtk-doc done +- oops, missing braces in debug.h and util.h, thanks Laurence 12/5/10 started 7.22.2 - the conditional image of ifthenelse can be any format, a (!=0) is added if diff --git a/libvips/include/vips/debug.h b/libvips/include/vips/debug.h index 902bd087..0f425408 100644 --- a/libvips/include/vips/debug.h +++ b/libvips/include/vips/debug.h @@ -36,34 +36,34 @@ extern "C" { #ifdef VIPS_DEBUG #define VIPS_DEBUG_MSG( ... ) \ - G_STMT_START printf( __VA_ARGS__ ); G_STMT_END + G_STMT_START { printf( __VA_ARGS__ ); } G_STMT_END #else #define VIPS_DEBUG_MSG( ... ) \ - G_STMT_START ; G_STMT_END + G_STMT_START { ; } G_STMT_END #endif /*VIPS_DEBUG*/ #ifdef VIPS_DEBUG_RED #define VIPS_DEBUG_MSG_RED( ... ) \ - G_STMT_START printf( "red: " __VA_ARGS__ ); G_STMT_END + G_STMT_START { printf( "red: " __VA_ARGS__ ); } G_STMT_END #else #define VIPS_DEBUG_MSG_RED( ... ) \ - G_STMT_START ; G_STMT_END + G_STMT_START { ; } G_STMT_END #endif /*VIPS_DEBUG_RED*/ #ifdef VIPS_DEBUG_AMBER #define VIPS_DEBUG_MSG_AMBER( ... ) \ - G_STMT_START printf( "amber: " __VA_ARGS__ ); G_STMT_END + G_STMT_START { printf( "amber: " __VA_ARGS__ ); } G_STMT_END #else #define VIPS_DEBUG_MSG_AMBER( ... ) \ - G_STMT_START ; G_STMT_END + G_STMT_START { ; } G_STMT_END #endif /*VIPS_DEBUG_AMBER*/ #ifdef VIPS_DEBUG_GREEN #define VIPS_DEBUG_MSG_GREEN( ... ) \ - G_STMT_START printf( "green: " __VA_ARGS__ ); G_STMT_END + G_STMT_START { printf( "green: " __VA_ARGS__ ); } G_STMT_END #else #define VIPS_DEBUG_MSG_GREEN( ... ) \ - G_STMT_START ; G_STMT_END + G_STMT_START { ; } G_STMT_END #endif /*VIPS_DEBUG_GREEN*/ /* All open image descriptors ... see im_init() and im_close(). diff --git a/libvips/include/vips/util.h b/libvips/include/vips/util.h index e49f4e94..ec01d2f3 100644 --- a/libvips/include/vips/util.h +++ b/libvips/include/vips/util.h @@ -46,40 +46,41 @@ extern "C" { /* Convert degrees->rads and vice-versa. */ -#define IM_RAD( r ) (((r) / 360.0) * 2.0 * IM_PI) -#define IM_DEG( a ) (((a) / (2.0 * IM_PI)) * 360.0) +#define IM_RAD( R ) (((R) / 360.0) * 2.0 * IM_PI) +#define IM_DEG( A ) (((A) / (2.0 * IM_PI)) * 360.0) -#define IM_MAX(A,B) ((A)>(B)?(A):(B)) -#define IM_MIN(A,B) ((A)<(B)?(A):(B)) -#define IM_ABS(x) (((x) >= 0) ? (x) : -(x)) +#define IM_MAX( A, B ) ((A) > (B) ? (A) : (B)) +#define IM_MIN( A, B ) ((A) < (B) ? (A) : (B)) +#define IM_ABS( X ) (((X) >= 0) ? (X) : -(X)) -#define IM_CLIP(A,V,B) IM_MAX( (A), IM_MIN( (B), (V) ) ) -#define IM_NUMBER(R) ((int)(sizeof(R)/sizeof(R[0]))) +#define IM_CLIP( A, V, B ) IM_MAX( (A), IM_MIN( (B), (V) ) ) +#define IM_NUMBER( R ) ((int) (sizeof(R) / sizeof(R[0]))) -#define IM_SWAP( TYPE, A, B ) { \ +#define IM_SWAP( TYPE, A, B ) \ +G_STMT_START { \ TYPE t = (A); \ (A) = (B); \ (B) = t; \ -} +} G_STMT_END #define IM_FREEF( F, S ) \ -G_STMT_START \ +G_STMT_START { \ if( S ) { \ (void) F( (S) ); \ (S) = 0; \ } \ -G_STMT_END +} G_STMT_END /* Can't just use IM_FREEF(), we want the extra cast to void on the argument * to im_free() to make sure we can work for "const char *" variables. */ #define IM_FREE( S ) \ -G_STMT_START \ +G_STMT_START { \ if( S ) { \ (void) im_free( (void *) (S) ); \ (S) = 0; \ } \ -G_STMT_END +} G_STMT_END #define IM_SETSTR( S, V ) \ G_STMT_START { \ @@ -97,7 +98,7 @@ G_STMT_START { \ /* Duff's device. Do OPERation N times in a 16-way unrolled loop. */ #define IM_UNROLL( N, OPER ) \ -G_STMT_START \ +G_STMT_START { \ if( (N) ) { \ int duff_count = ((N) + 15) / 16; \ \ @@ -121,16 +122,16 @@ G_STMT_START \ } while( --duff_count > 0 ); \ } \ } \ -G_STMT_END +} G_STMT_END /* Round a float to the nearest integer. Much faster than rint(). */ -#define IM_RINT( R ) ((int)((R)>0?((R)+0.5):((R)-0.5))) +#define IM_RINT( R ) ((int) ((R) > 0 ? ((R) + 0.5) : ((R) - 0.5))) /* Various integer range clips. Record over/under flows. */ #define IM_CLIP_UCHAR( V, SEQ ) \ -G_STMT_START \ +G_STMT_START { \ if( (V) < 0 ) { \ (SEQ)->underflow++; \ (V) = 0; \ @@ -139,10 +140,10 @@ G_STMT_START \ (SEQ)->overflow++; \ (V) = UCHAR_MAX; \ } \ -G_STMT_END +} G_STMT_END #define IM_CLIP_USHORT( V, SEQ ) \ -G_STMT_START \ +G_STMT_START { \ if( (V) < 0 ) { \ (SEQ)->underflow++; \ (V) = 0; \ @@ -151,10 +152,10 @@ G_STMT_START \ (SEQ)->overflow++; \ (V) = USHRT_MAX; \ } \ -G_STMT_END +} G_STMT_END #define IM_CLIP_CHAR( V, SEQ ) \ -G_STMT_START \ +G_STMT_START { \ if( (V) < SCHAR_MIN ) { \ (SEQ)->underflow++; \ (V) = SCHAR_MIN; \ @@ -163,10 +164,10 @@ G_STMT_START \ (SEQ)->overflow++; \ (V) = SCHAR_MAX; \ } \ -G_STMT_END +} G_STMT_END #define IM_CLIP_SHORT( V, SEQ ) \ -G_STMT_START \ +G_STMT_START { \ if( (V) < SHRT_MIN ) { \ (SEQ)->underflow++; \ (V) = SHRT_MIN; \ @@ -175,7 +176,7 @@ G_STMT_START \ (SEQ)->overflow++; \ (V) = SHRT_MAX; \ } \ -G_STMT_END +} G_STMT_END #define IM_CLIP_NONE( V, SEQ ) {} diff --git a/libvips/morphology/im_rank.c b/libvips/morphology/im_rank.c index 536a4573..8e64d23f 100644 --- a/libvips/morphology/im_rank.c +++ b/libvips/morphology/im_rank.c @@ -175,7 +175,7 @@ rank_start( IMAGE *out, void *a, void *b ) sort[lower + 1], sort[upper] );\ if( sort[lower] > sort[lower + 1] ) \ IM_SWAP( TYPE, \ - sort[lower], sort[lower + 1] ) \ + sort[lower], sort[lower + 1] );\ \ i = lower + 1; \ j = upper; \