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
This commit is contained in:
Mark Cave-Ayland 2009-10-15 17:50:14 +00:00
parent 24da252e56
commit 7dea8a5282
3 changed files with 12 additions and 12 deletions

View file

@ -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);

View file

@ -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))

View file

@ -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);
}
}
}