Cut down reliance on TYPE_GETTYPE macro in favor of a function we can repoint later in the serialization change process

git-svn-id: http://svn.osgeo.org/postgis/trunk@6306 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Paul Ramsey 2010-12-08 20:54:45 +00:00
parent 9d0bf60c95
commit a0b3762501
13 changed files with 73 additions and 75 deletions

View file

@ -441,11 +441,11 @@ Datum BOX3D_construct(PG_FUNCTION_ARGS)
LWGEOM *minpoint, *maxpoint;
POINT3DZ minp, maxp;
minpoint = lwgeom_deserialize(SERIALIZED_FORM(min));
maxpoint = lwgeom_deserialize(SERIALIZED_FORM(max));
minpoint = pglwgeom_deserialize(min);
maxpoint = pglwgeom_deserialize(max);
if ( TYPE_GETTYPE(minpoint->type) != POINTTYPE ||
TYPE_GETTYPE(maxpoint->type) != POINTTYPE )
if ( minpoint->type != POINTTYPE ||
maxpoint->type != POINTTYPE )
{
elog(ERROR, "BOX3D_construct: args must be points");
PG_RETURN_NULL();

View file

@ -1012,7 +1012,7 @@ chip_draw_lwgeom(CHIP *chip, LWGEOM *lwgeom, PIXEL *pixel, int op)
if ( chip->bvol.ymin > lwgeom->bbox->ymax ) return;
}
switch (TYPE_GETTYPE(lwgeom->type) )
switch (lwgeom->type)
{
case POINTTYPE:
chip_draw_lwpoint(chip, (LWPOINT*)lwgeom, pixel, op);
@ -1022,7 +1022,7 @@ chip_draw_lwgeom(CHIP *chip, LWGEOM *lwgeom, PIXEL *pixel, int op)
return;
case POLYGONTYPE:
lwerror("%s geometry unsupported by draw operation",
lwtype_name(TYPE_GETTYPE(lwgeom->type)));
lwtype_name(lwgeom->type));
case MULTIPOINTTYPE:
case MULTILINETYPE:
case MULTIPOLYGONTYPE:

View file

@ -16,7 +16,7 @@ lwgeom_summary(const LWGEOM *lwgeom, int offset)
{
char *result;
switch (TYPE_GETTYPE(lwgeom->type))
switch (lwgeom->type)
{
case POINTTYPE:
return lwpoint_summary((LWPOINT *)lwgeom, offset);
@ -54,7 +54,7 @@ lwpoint_summary(LWPOINT *point, int offset)
result = lwalloc(128+offset);
sprintf(result, "%*.s%s[%s]\n",
offset, pad, lwtype_name(TYPE_GETTYPE(point->type)),
offset, pad, lwtype_name(point->type),
lwgeom_typeflags(point->type));
return result;
}
@ -68,7 +68,7 @@ lwline_summary(LWLINE *line, int offset)
result = lwalloc(128+offset);
sprintf(result, "%*.s%s[%s] with %d points\n",
offset, pad, lwtype_name(TYPE_GETTYPE(line->type)),
offset, pad, lwtype_name(line->type),
lwgeom_typeflags(line->type),
line->points->npoints);
return result;
@ -89,7 +89,7 @@ lwcollection_summary(LWCOLLECTION *col, int offset)
result = (char *)lwalloc(size);
sprintf(result, "%*.s%s[%s] with %d elements\n",
offset, pad, lwtype_name(TYPE_GETTYPE(col->type)),
offset, pad, lwtype_name(col->type),
lwgeom_typeflags(col->type),
col->ngeoms);
@ -124,7 +124,7 @@ lwpoly_summary(LWPOLY *poly, int offset)
result = lwalloc(size);
sprintf(result, "%*.s%s[%s] with %i rings\n",
offset, pad, lwtype_name(TYPE_GETTYPE(poly->type)),
offset, pad, lwtype_name(poly->type),
lwgeom_typeflags(poly->type),
poly->nrings);

View file

@ -222,7 +222,7 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
oldcontext = MemoryContextSwitchTo(newcontext);
pglwgeom = (PG_LWGEOM *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(pglwgeom->type) != POLYGONTYPE )
if ( pglwgeom_get_type(pglwgeom) != POLYGONTYPE )
{
lwerror("Input is not a polygon");
}

View file

@ -737,9 +737,7 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
double to = PG_GETARG_FLOAT8(2);
LWCOLLECTION *geom_out = NULL;
LWGEOM *line_in = NULL;
uchar type = (uchar)SERIALIZED_FORM(geom_in)[0];
char geomtype = TYPE_GETTYPE(type);
char hasz = TYPE_HASZ(type);
char geomtype = pglwgeom_get_type(geom_in);
static int ordinate = 2; /* Z */
if ( ! ( geomtype == LINETYPE || geomtype == MULTILINETYPE ) )
@ -748,13 +746,14 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
PG_RETURN_NULL();
}
if ( ! hasz )
line_in = pglwgeom_deserialize(geom_in);
if ( ! FLAGS_GET_Z(line_in->flags) )
{
elog(ERROR,"This function only accepts LINESTRING or MULTILINESTRING with Z values as arguments.");
PG_RETURN_NULL();
}
line_in = lwgeom_deserialize(SERIALIZED_FORM(geom_in));
if ( geomtype == LINETYPE )
{
geom_out = lwline_clip_to_ordinate_range((LWLINE*)line_in, ordinate, from, to);
@ -790,7 +789,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
LWGEOM *olwgeom;
POINTARRAY *ipa, *opa;
PG_LWGEOM *ret;
uchar type = geom->type;
int type = pglwgeom_get_type(geom);
if ( from < 0 || from > 1 )
{
@ -810,11 +809,9 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
PG_RETURN_NULL();
}
if ( TYPE_GETTYPE(type) == LINETYPE )
if ( type == LINETYPE )
{
LWLINE *iline;
iline = lwline_deserialize(SERIALIZED_FORM(geom));
LWLINE *iline = lwgeom_as_lwline(pglwgeom_deserialize(geom));
if ( lwgeom_is_empty((LWGEOM*)iline) )
{
@ -834,7 +831,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
olwgeom = (LWGEOM *)lwline_construct(iline->srid, NULL, opa);
}
else if ( TYPE_GETTYPE(type) == MULTILINETYPE )
else if ( type == MULTILINETYPE )
{
LWMLINE *iline;
int i = 0, g = 0;
@ -912,9 +909,9 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
}
/* If we got any points, we need to return a GEOMETRYCOLLECTION */
if ( ! homogeneous )
TYPE_SETTYPE(type,COLLECTIONTYPE);
type = COLLECTIONTYPE;
olwgeom = (LWGEOM*)lwcollection_construct(TYPE_GETTYPE(type), iline->srid, NULL, g, geoms);
olwgeom = (LWGEOM*)lwcollection_construct(type, iline->srid, NULL, g, geoms);
}
else
{
@ -923,8 +920,8 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
}
ret = pglwgeom_serialize(olwgeom);
lwgeom_free(olwgeom);
PG_FREE_IF_COPY(geom, 0);
lwgeom_release(olwgeom);
PG_RETURN_POINTER(ret);
}

View file

@ -451,7 +451,7 @@ Datum LWGEOM_force_collection(PG_FUNCTION_ARGS)
* in input. If bbox cache is not there we'll need to handle
* automatic bbox addition FOR_COMPLEX_GEOMS.
*/
if ( TYPE_GETTYPE(geom->type) == COLLECTIONTYPE &&
if ( pglwgeom_get_type(geom) == COLLECTIONTYPE &&
TYPE_HASBBOX(geom->type) )
{
PG_RETURN_POINTER(geom);
@ -504,7 +504,7 @@ Datum LWGEOM_force_multi(PG_FUNCTION_ARGS)
** in input. If bbox cache is not there we'll need to handle
** automatic bbox addition FOR_COMPLEX_GEOMS.
*/
if ( lwtype_is_collection(TYPE_GETTYPE(geom->type)) &&
if ( lwtype_is_collection(pglwgeom_get_type(geom)) &&
TYPE_HASBBOX(geom->type) )
{
PG_RETURN_POINTER(geom);
@ -1126,7 +1126,7 @@ Datum LWGEOM_collect(PG_FUNCTION_ARGS)
pglwgeom1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
pglwgeom2 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(TYPE_GETTYPE(pglwgeom1->type)), lwtype_name(TYPE_GETTYPE(pglwgeom2->type)));
POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(pglwgeom_get_type(pglwgeom1)), lwtype_name(pglwgeom_get_type(pglwgeom2)));
#if 0
if ( pglwgeom_get_srid(pglwgeom1) != pglwgeom_get_srid(pglwgeom2) )
@ -1389,7 +1389,7 @@ Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS)
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
PG_LWGEOM *geom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
uint32 intype = TYPE_GETTYPE(geom->type);
uint32 intype = pglwgeom_get_type(geom);
offset += INTALIGN(VARSIZE(geom));
@ -1505,7 +1505,7 @@ Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS)
/* Get input PG_LWGEOM and deserialize it */
ingeom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(ingeom->type) != MULTIPOINTTYPE )
if ( pglwgeom_get_type(ingeom) != MULTIPOINTTYPE )
{
elog(ERROR, "makeline: input must be a multipoint");
PG_RETURN_NULL(); /* input is not a multipoint */
@ -1599,7 +1599,7 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
PG_LWGEOM *geom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
offset += INTALIGN(VARSIZE(geom));
if ( TYPE_GETTYPE(geom->type) != POINTTYPE ) continue;
if ( pglwgeom_get_type(geom) != POINTTYPE ) continue;
lwpoints[npoints++] =
lwpoint_deserialize(SERIALIZED_FORM(geom));
@ -1670,8 +1670,8 @@ Datum LWGEOM_makeline(PG_FUNCTION_ARGS)
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
pglwg2 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
if ( ! TYPE_GETTYPE(pglwg1->type) == POINTTYPE ||
! TYPE_GETTYPE(pglwg2->type) == POINTTYPE )
if ( ! pglwgeom_get_type(pglwg1) == POINTTYPE ||
! pglwgeom_get_type(pglwg2) == POINTTYPE )
{
elog(ERROR, "Input geometries must be points");
PG_RETURN_NULL();
@ -1715,7 +1715,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
/* Get input shell */
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
{
lwerror("Shell is not a line");
}
@ -1732,7 +1732,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
PG_LWGEOM *g = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
LWLINE *hole;
offset += INTALIGN(VARSIZE(g));
if ( TYPE_GETTYPE(g->type) != LINETYPE )
if ( pglwgeom_get_type(g) != LINETYPE )
{
lwerror("Hole %d is not a line", i);
}
@ -1975,8 +1975,8 @@ Datum LWGEOM_segmentize2d(PG_FUNCTION_ARGS)
dist = PG_GETARG_FLOAT8(1);
/* Avoid deserialize/serialize steps */
if ( (TYPE_GETTYPE(ingeom->type) == POINTTYPE) ||
(TYPE_GETTYPE(ingeom->type) == MULTIPOINTTYPE) )
if ( (pglwgeom_get_type(ingeom) == POINTTYPE) ||
(pglwgeom_get_type(ingeom) == MULTIPOINTTYPE) )
PG_RETURN_POINTER(ingeom);
inlwgeom = lwgeom_deserialize(SERIALIZED_FORM(ingeom));
@ -2131,7 +2131,7 @@ Datum LWGEOM_same(PG_FUNCTION_ARGS)
LWGEOM *lwg1, *lwg2;
bool result;
if ( TYPE_GETTYPE(g1->type) != TYPE_GETTYPE(g2->type) )
if ( pglwgeom_get_type(g1) != pglwgeom_get_type(g2) )
{
PG_FREE_IF_COPY(g1, 0);
PG_FREE_IF_COPY(g2, 1);
@ -2304,13 +2304,13 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
where = PG_GETARG_INT32(2);
}
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
{
elog(ERROR, "First argument must be a LINESTRING");
PG_RETURN_NULL();
}
if ( ! TYPE_GETTYPE(pglwg2->type) == POINTTYPE )
if ( ! pglwgeom_get_type(pglwg2) == POINTTYPE )
{
elog(ERROR, "Second argument must be a POINT");
PG_RETURN_NULL();
@ -2357,7 +2357,7 @@ Datum LWGEOM_removepoint(PG_FUNCTION_ARGS)
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
which = PG_GETARG_INT32(1);
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
{
elog(ERROR, "First argument must be a LINESTRING");
PG_RETURN_NULL();

View file

@ -532,7 +532,7 @@ Datum ST_AddMeasure(PG_FUNCTION_ARGS)
double start_measure = PG_GETARG_FLOAT8(1);
double end_measure = PG_GETARG_FLOAT8(2);
LWGEOM *lwin, *lwout;
int type = TYPE_GETTYPE(gin->type);
int type = pglwgeom_get_type(gin);
/* Raise an error if input is not a linestring or multilinestring */
if ( type != LINETYPE && type != MULTILINETYPE )

View file

@ -419,7 +419,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
PG_LWGEOM *pggeom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
int pgtype = TYPE_GETTYPE(pggeom->type);
int pgtype = pglwgeom_get_type(pggeom);
offset += INTALIGN(VARSIZE(pggeom));
if ( ! gotsrid ) /* Initialize SRID */
{
@ -475,7 +475,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
PG_LWGEOM *pggeom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
int pgtype = TYPE_GETTYPE(pggeom->type);
int pgtype = pglwgeom_get_type(pggeom);
offset += INTALIGN(VARSIZE(pggeom));
if ( pgtype == POLYGONTYPE )
{
@ -597,7 +597,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
PG_RETURN_NULL();
}
srid = pglwgeom_get_srid(geom);
POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(TYPE_GETTYPE(geom->type)));
POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(pglwgeom_get_type(geom)));
}
else
{
@ -613,7 +613,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
}
POSTGIS_DEBUGF(3, "unite_garray(%d): adding geom %d to union (%s)",
call, i, lwtype_name(TYPE_GETTYPE(geom->type)));
call, i, lwtype_name(pglwgeom_get_type(geom)));
g2 = GEOSUnion(g1, geos_result);
if ( g2 == NULL )

View file

@ -159,7 +159,7 @@ Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
char * formatted_text;
/* Only supports points. */
uchar geom_type = TYPE_GETTYPE(pg_lwgeom->type);
uchar geom_type = pglwgeom_get_type(pg_lwgeom);
if (POINTTYPE != geom_type)
{
lwerror("Only points are supported, you tried type %s.", lwtype_name(geom_type));
@ -452,7 +452,7 @@ is_worth_caching_pglwgeom_bbox(const PG_LWGEOM *in)
#if ! POSTGIS_AUTOCACHE_BBOX
return false;
#endif
if ( TYPE_GETTYPE(in->type) == POINTTYPE ) return false;
if ( pglwgeom_get_type(in) == POINTTYPE ) return false;
return true;
}

View file

@ -334,14 +334,15 @@ Datum LWGEOM_exteriorring_polygon(PG_FUNCTION_ARGS)
POSTGIS_DEBUG(2, "LWGEOM_exteriorring_polygon called.");
if ( TYPE_GETTYPE(geom->type) != POLYGONTYPE &&
TYPE_GETTYPE(geom->type) != CURVEPOLYTYPE &&
TYPE_GETTYPE(geom->type) != TRIANGLETYPE)
if ( pglwgeom_get_type(geom) != POLYGONTYPE &&
pglwgeom_get_type(geom) != CURVEPOLYTYPE &&
pglwgeom_get_type(geom) != TRIANGLETYPE)
{
elog(ERROR, "ExteriorRing: geom is not a polygon");
PG_RETURN_NULL();
}
if (lwgeom_getType((uchar)SERIALIZED_FORM(geom)[0]) == POLYGONTYPE)
if ( pglwgeom_get_type(geom) == POLYGONTYPE )
{
poly = lwpoly_deserialize(SERIALIZED_FORM(geom));
@ -455,14 +456,14 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(geom->type) != POLYGONTYPE &&
TYPE_GETTYPE(geom->type) != CURVEPOLYTYPE )
if ( pglwgeom_get_type(geom) != POLYGONTYPE &&
pglwgeom_get_type(geom) != CURVEPOLYTYPE )
{
PG_FREE_IF_COPY(geom, 0);
elog(ERROR, "InteriorRingN: geom is not a polygon");
PG_RETURN_NULL();
}
if ( TYPE_GETTYPE(geom->type) == POLYGONTYPE)
if ( pglwgeom_get_type(geom) == POLYGONTYPE)
{
poly = lwpoly_deserialize(SERIALIZED_FORM(geom));
@ -556,7 +557,7 @@ Datum LWGEOM_x_point(PG_FUNCTION_ARGS)
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
if ( pglwgeom_get_type(geom) != POINTTYPE )
lwerror("Argument to X() must be a point");
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
@ -581,7 +582,7 @@ Datum LWGEOM_y_point(PG_FUNCTION_ARGS)
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
if ( pglwgeom_get_type(geom) != POINTTYPE )
lwerror("Argument to Y() must be a point");
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
@ -607,7 +608,7 @@ Datum LWGEOM_z_point(PG_FUNCTION_ARGS)
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
if ( pglwgeom_get_type(geom) != POINTTYPE )
lwerror("Argument to Z() must be a point");
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
@ -635,7 +636,7 @@ Datum LWGEOM_m_point(PG_FUNCTION_ARGS)
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
if ( pglwgeom_get_type(geom) != POINTTYPE )
lwerror("Argument to M() must be a point");
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);

View file

@ -389,7 +389,7 @@ pglwgeom_set_srid(PG_LWGEOM *lwgeom, int32 new_srid)
* none present => -1
*/
int
pglwgeom_get_srid(PG_LWGEOM *lwgeom)
pglwgeom_get_srid(const PG_LWGEOM *lwgeom)
{
uchar type = lwgeom->type;
uchar *loc = lwgeom->data;
@ -405,7 +405,7 @@ pglwgeom_get_srid(PG_LWGEOM *lwgeom)
}
int
pglwgeom_get_type(PG_LWGEOM *lwgeom)
pglwgeom_get_type(const PG_LWGEOM *lwgeom)
{
return TYPE_GETTYPE(lwgeom->type);
}

View file

@ -74,8 +74,8 @@ extern LWGEOM *pglwgeom_deserialize(PG_LWGEOM *pglwgeom);
/* PG_LWGEOM SRID get/set */
extern PG_LWGEOM *pglwgeom_set_srid(PG_LWGEOM *pglwgeom, int32 newSRID);
extern int pglwgeom_get_srid(PG_LWGEOM *pglwgeom);
extern int pglwgeom_get_type(PG_LWGEOM *lwgeom);
extern int pglwgeom_get_srid(const PG_LWGEOM *pglwgeom);
extern int pglwgeom_get_type(const PG_LWGEOM *lwgeom);
extern Oid getGeometryOID(void);

View file

@ -252,12 +252,12 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
/* If there is a segment defined for this node, include it. */
if (root->segment)
{
LWDEBUGF(3, "findLineSegments %p: adding segment %p %d.", root, root->segment, TYPE_GETTYPE(root->segment->type));
LWDEBUGF(3, "findLineSegments %p: adding segment %p %d.", root, root->segment, root->segment->type);
lwgeoms = lwalloc(sizeof(LWGEOM *));
lwgeoms[0] = (LWGEOM *)root->segment;
LWDEBUGF(3, "Found geom %p, type %d, dim %d", root->segment, TYPE_GETTYPE(root->segment->type), TYPE_GETZM(root->segment->type));
LWDEBUGF(3, "Found geom %p, type %d, dim %d", root->segment, root->segment->type, FLAGS_GET_Z(root->segment->flags));
result = (LWMLINE *)lwcollection_construct(lwgeom_makeType_full(0, 0, 0, MULTILINETYPE, 0), -1, NULL, 1, lwgeoms);
}
@ -270,7 +270,7 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
tmp = findLineSegments(root->leftNode, value);
if (tmp)
{
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, TYPE_GETTYPE(tmp->type), TYPE_GETZM(tmp->type));
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, tmp->type, FLAGS_GET_Z(tmp->flags));
if (result)
result = mergeMultiLines(result, tmp);
@ -287,7 +287,7 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
tmp = findLineSegments(root->rightNode, value);
if (tmp)
{
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, TYPE_GETTYPE(tmp->type), TYPE_GETZM(tmp->type));
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, tmp->type, FLAGS_GET_Z(tmp->flags));
if (result)
result = mergeMultiLines(result, tmp);
@ -306,7 +306,7 @@ LWMLINE *mergeMultiLines(LWMLINE *line1, LWMLINE *line2)
LWCOLLECTION *col;
int i, j, ngeoms;
LWDEBUGF(2, "mergeMultiLines called on %p, %d, %d; %p, %d, %d", line1, line1->ngeoms, TYPE_GETTYPE(line1->type), line2, line2->ngeoms, TYPE_GETTYPE(line2->type));
LWDEBUGF(2, "mergeMultiLines called on %p, %d, %d; %p, %d, %d", line1, line1->ngeoms, line1->type, line2, line2->ngeoms, line2->type);
ngeoms = line1->ngeoms + line2->ngeoms;
geoms = lwalloc(sizeof(LWGEOM *) * ngeoms);
@ -322,7 +322,7 @@ LWMLINE *mergeMultiLines(LWMLINE *line1, LWMLINE *line2)
}
col = lwcollection_construct(MULTILINETYPE, -1, NULL, ngeoms, geoms);
LWDEBUGF(3, "mergeMultiLines returning %p, %d, %d", col, col->ngeoms, TYPE_GETTYPE(col->type));
LWDEBUGF(3, "mergeMultiLines returning %p, %d, %d", col, col->ngeoms, col->type);
return (LWMLINE *)col;
}
@ -353,7 +353,7 @@ Datum LWGEOM_polygon_index(PG_FUNCTION_ARGS)
igeom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
yval = PG_GETARG_FLOAT8(1);
geom = lwgeom_deserialize(SERIALIZED_FORM(igeom));
if (TYPE_GETTYPE(geom->type) != POLYGONTYPE)
if (geom->type != POLYGONTYPE)
{
lwgeom_release(geom);
PG_FREE_IF_COPY(igeom, 0);
@ -365,10 +365,10 @@ Datum LWGEOM_polygon_index(PG_FUNCTION_ARGS)
mline = findLineSegments(root, yval);
#if POSTGIS_DEBUG_LEVEL >= 3
POSTGIS_DEBUGF(3, "mline returned %p %d", mline, TYPE_GETTYPE(mline->type));
POSTGIS_DEBUGF(3, "mline returned %p %d", mline, mline->type);
for (i = 0; i < mline->ngeoms; i++)
{
POSTGIS_DEBUGF(3, "geom[%d] %p %d", i, mline->geoms[i], TYPE_GETTYPE(mline->geoms[i]->type));
POSTGIS_DEBUGF(3, "geom[%d] %p %d", i, mline->geoms[i], mline->geoms[i]->type);
}
#endif
@ -407,7 +407,7 @@ void populateCache(RTREE_POLY_CACHE *currentCache, LWGEOM *lwgeom, uchar *serial
LWDEBUGF(2, "populateCache called with cache %p geom %p", currentCache, lwgeom);
if (TYPE_GETTYPE(lwgeom->type) == MULTIPOLYGONTYPE)
if (lwgeom->type == MULTIPOLYGONTYPE)
{
LWDEBUG(2, "populateCache MULTIPOLYGON");
mpoly = (LWMPOLY *)lwgeom;
@ -441,7 +441,7 @@ void populateCache(RTREE_POLY_CACHE *currentCache, LWGEOM *lwgeom, uchar *serial
}
}
}
else if ( TYPE_GETTYPE(lwgeom->type) == POLYGONTYPE )
else if ( lwgeom->type == POLYGONTYPE )
{
LWDEBUG(2, "populateCache POLYGON");
poly = (LWPOLY *)lwgeom;