From: Mark Cave-Ayland Date: Thu, 15 Oct 2009 17:50:14 +0000 (+0000) Subject: Update the TYPMOD_SET_* macros in the same way as for the FLAGS_SET_* macros earlier... X-Git-Tag: 1.5.0b1~366 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7dea8a52822bc42678baaed3665184b203bfa5c8;p=postgis Update the TYPMOD_SET_* macros in the same way as for the FLAGS_SET_* macros earlier, so that they actually change the variable they reference. git-svn-id: http://svn.osgeo.org/postgis/trunk@4654 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/cunit/cu_libgeom.c b/liblwgeom/cunit/cu_libgeom.c index ebbb6b095..b695afd55 100644 --- a/liblwgeom/cunit/cu_libgeom.c +++ b/liblwgeom/cunit/cu_libgeom.c @@ -73,15 +73,15 @@ void test_typmod_macros(void) int z = 1; int rv; - typmod = TYPMOD_SET_SRID(typmod,srid); + TYPMOD_SET_SRID(typmod,srid); rv = TYPMOD_GET_SRID(typmod); CU_ASSERT_EQUAL(rv, srid); - typmod = TYPMOD_SET_TYPE(typmod,type); + TYPMOD_SET_TYPE(typmod,type); rv = TYPMOD_GET_TYPE(typmod); CU_ASSERT_EQUAL(rv,type); - typmod = TYPMOD_SET_Z(typmod); + TYPMOD_SET_Z(typmod); rv = TYPMOD_GET_Z(typmod); CU_ASSERT_EQUAL(rv,z); diff --git a/liblwgeom/libgeom.h b/liblwgeom/libgeom.h index 72dec7595..32935df46 100644 --- a/liblwgeom/libgeom.h +++ b/liblwgeom/libgeom.h @@ -70,13 +70,13 @@ * ZM Flags = Bottom 2 bits. */ #define TYPMOD_GET_SRID(typmod) ((typmod & 0x0FFFFF00)>>8) -#define TYPMOD_SET_SRID(typmod, srid) ((typmod & 0x000000FF) | ((srid & 0x000FFFFF)<<8)) +#define TYPMOD_SET_SRID(typmod, srid) ((typmod) = (typmod & 0x000000FF) | ((srid & 0x000FFFFF)<<8)) #define TYPMOD_GET_TYPE(typmod) ((typmod & 0x000000FC)>>2) -#define TYPMOD_SET_TYPE(typmod, type) ((typmod & 0xFFFFFF03) | ((type & 0x0000003F)<<2)) +#define TYPMOD_SET_TYPE(typmod, type) ((typmod) = (typmod & 0xFFFFFF03) | ((type & 0x0000003F)<<2)) #define TYPMOD_GET_Z(typmod) ((typmod & 0x00000002)>>1) -#define TYPMOD_SET_Z(typmod) (typmod | 0x00000002) +#define TYPMOD_SET_Z(typmod) ((typmod) = typmod | 0x00000002) #define TYPMOD_GET_M(typmod) (typmod & 0x00000001) -#define TYPMOD_SET_M(typmod) (typmod | 0x00000001) +#define TYPMOD_SET_M(typmod) ((typmod) = typmod | 0x00000001) #define TYPMOD_GET_NDIMS(typmod) (2+TYPMOD_GET_Z(typmod)+TYPMOD_GET_M(typmod)) diff --git a/postgis/geography_inout.c b/postgis/geography_inout.c index fa60101f7..481ab135a 100644 --- a/postgis/geography_inout.c +++ b/postgis/geography_inout.c @@ -341,13 +341,13 @@ Datum geography_typmod_in(PG_FUNCTION_ARGS) } else { - typmod = TYPMOD_SET_SRID(typmod, srid); + TYPMOD_SET_SRID(typmod, srid); } } } else { - typmod = TYPMOD_SET_SRID(typmod, 0); + TYPMOD_SET_SRID(typmod, 0); } } if( i == 0 ) /* TYPE */ @@ -365,11 +365,11 @@ Datum geography_typmod_in(PG_FUNCTION_ARGS) } else { - typmod = TYPMOD_SET_TYPE(typmod, type); + TYPMOD_SET_TYPE(typmod, type); if ( z ) - typmod = TYPMOD_SET_Z(typmod); + TYPMOD_SET_Z(typmod); if ( m ) - typmod = TYPMOD_SET_M(typmod); + TYPMOD_SET_M(typmod); } } }