From: Mark Cave-Ayland Date: Sun, 7 Sep 2008 11:02:05 +0000 (+0000) Subject: Yet another update to the liblwgeom parser API - lwgeom_from_ewkt() has been renamed... X-Git-Tag: 1.4.0b1~759 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b0641e9c1d17fd40c8c8fc00b92aaa68c6bce70b;p=postgis Yet another update to the liblwgeom parser API - lwgeom_from_ewkt() has been renamed to serialized_lwgeom_from_ewkt() to indicate that the function returns a serialied LWGEOM rather than an unserialized LWGEOM structure. git-svn-id: http://svn.osgeo.org/postgis/trunk@2945 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/liblwgeom.h b/liblwgeom/liblwgeom.h index ae8f83dbd..ef0c18a46 100644 --- a/liblwgeom/liblwgeom.h +++ b/liblwgeom/liblwgeom.h @@ -1116,12 +1116,12 @@ extern void deparse_hex(uchar str, char *result); /* Parser access routines */ extern char *lwgeom_to_ewkt(LWGEOM *lwgeom); -extern SERIALIZED_LWGEOM *lwgeom_from_ewkt(char *wkt_input); extern char *lwgeom_to_hexwkb(LWGEOM *lwgeom, unsigned int byteorder); extern LWGEOM *lwgeom_from_ewkb(uchar *ewkb, size_t ewkblen); extern uchar *lwgeom_to_ewkb(LWGEOM *lwgeom, char byteorder, size_t *ewkblen); extern char *serialized_lwgeom_to_ewkt(uchar *serialized); +extern SERIALIZED_LWGEOM *serialized_lwgeom_from_ewkt(char *wkt_input); extern char *serialized_lwgeom_to_hexwkb(uchar *serialized, unsigned int byteorder, size_t *size); extern char *serialized_lwgeom_to_ewkb(uchar *serialized, unsigned int byteorder, size_t *size); diff --git a/liblwgeom/lwgeom.c b/liblwgeom/lwgeom.c index 19819789c..a1f444490 100644 --- a/liblwgeom/lwgeom.c +++ b/liblwgeom/lwgeom.c @@ -453,27 +453,6 @@ lwgeom_add(const LWGEOM *to, uint32 where, const LWGEOM *what) } -/* - * Make a LWGEOM object from a WKT input string - */ -SERIALIZED_LWGEOM * -lwgeom_from_ewkt(char *wkt_input) -{ - SERIALIZED_LWGEOM *serialized_form = parse_lwg(wkt_input, - lwalloc, lwerror); - - - LWDEBUGF(2, "lwgeom_from_ewkt with %s",wkt_input); - - if (serialized_form == NULL) - { - lwerror("lwgeom_from_ewkt:: couldnt parse!"); - return NULL; - } - - return serialized_form; -} - /* * Return an alloced string */ @@ -543,7 +522,7 @@ lwgeom_from_ewkb(uchar *ewkb, size_t size) hexewkb[hexewkblen] = '\0'; /* Rely on grammar parser to construct a LWGEOM */ - serialized_lwgeom = lwgeom_from_ewkt(hexewkb); + serialized_lwgeom = serialized_lwgeom_from_ewkt(hexewkb); /* Free intermediate HEXified representation */ lwfree(hexewkb); @@ -560,6 +539,27 @@ lwgeom_from_ewkb(uchar *ewkb, size_t size) * the function input is already serialized, e.g. some input and output functions */ +/* + * Make a serialzed LWGEOM object from a WKT input string + */ +SERIALIZED_LWGEOM * +serialized_lwgeom_from_ewkt(char *wkt_input) +{ + SERIALIZED_LWGEOM *serialized_form = parse_lwg(wkt_input, + lwalloc, lwerror); + + + LWDEBUGF(2, "serialized_lwgeom_from_ewkt with %s",wkt_input); + + if (serialized_form == NULL) + { + lwerror("serialized_lwgeom_from_ewkt:: couldnt parse!"); + return NULL; + } + + return serialized_form; +} + /* * Return an alloced string */ diff --git a/lwgeom/lwgeom_inout.c b/lwgeom/lwgeom_inout.c index 1b2eda897..8ec4fbf91 100644 --- a/lwgeom/lwgeom_inout.c +++ b/lwgeom/lwgeom_inout.c @@ -63,15 +63,15 @@ PG_FUNCTION_INFO_V1(LWGEOM_in); Datum LWGEOM_in(PG_FUNCTION_ARGS) { char *str = PG_GETARG_CSTRING(0); - SERIALIZED_LWGEOM *serialized_lwgeom; - LWGEOM *lwgeom; - PG_LWGEOM *ret; + SERIALIZED_LWGEOM *serialized_lwgeom; + LWGEOM *lwgeom; + PG_LWGEOM *ret; /* will handle both HEXEWKB and EWKT */ - serialized_lwgeom = lwgeom_from_ewkt(str); + serialized_lwgeom = serialized_lwgeom_from_ewkt(str); lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom); - ret = pglwgeom_serialize(lwgeom); + ret = pglwgeom_serialize(lwgeom); lwgeom_release(lwgeom); if ( is_worth_caching_pglwgeom_bbox(ret) ) @@ -476,7 +476,7 @@ Datum parse_WKT_lwgeom(PG_FUNCTION_ARGS) POSTGIS_DEBUGF(3, "in parse_WKT_lwgeom with input: '%s'",wkt); - serialized_lwgeom = lwgeom_from_ewkt(wkt); + serialized_lwgeom = serialized_lwgeom_from_ewkt(wkt); lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom); ret = pglwgeom_serialize(lwgeom); diff --git a/lwgeom/lwgeom_ogc.c b/lwgeom/lwgeom_ogc.c index 3d2812dd5..6d49ddc9e 100644 --- a/lwgeom/lwgeom_ogc.c +++ b/lwgeom/lwgeom_ogc.c @@ -1002,7 +1002,7 @@ Datum LWGEOM_from_text(PG_FUNCTION_ARGS) POSTGIS_DEBUGF(3, "wkt: [%s]", wkt); - serialized_lwgeom = lwgeom_from_ewkt(wkt); + serialized_lwgeom = serialized_lwgeom_from_ewkt(wkt); lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom); if ( lwgeom->SRID != -1 || TYPE_GETZM(lwgeom->type) != 0 ) diff --git a/lwgeom/lwgeom_pg.c b/lwgeom/lwgeom_pg.c index d9e0afa90..1324fcd7d 100644 --- a/lwgeom/lwgeom_pg.c +++ b/lwgeom/lwgeom_pg.c @@ -252,7 +252,7 @@ PG_LWGEOM * pglwgeom_from_ewkb(uchar *ewkb, size_t ewkblen) { PG_LWGEOM *ret; - SERIALIZED_LWGEOM *serialized_lwgeom; + SERIALIZED_LWGEOM *serialized_lwgeom; char *hexewkb; size_t hexewkblen = ewkblen*2; int i; @@ -264,10 +264,10 @@ pglwgeom_from_ewkb(uchar *ewkb, size_t ewkblen) } hexewkb[hexewkblen] = '\0'; - serialized_lwgeom = lwgeom_from_ewkt(hexewkb); + serialized_lwgeom = serialized_lwgeom_from_ewkt(hexewkb); - ret = (PG_LWGEOM *)palloc(serialized_lwgeom->size + VARHDRSZ); - SET_VARSIZE(ret, serialized_lwgeom->size + VARHDRSZ); + ret = (PG_LWGEOM *)palloc(serialized_lwgeom->size + VARHDRSZ); + SET_VARSIZE(ret, serialized_lwgeom->size + VARHDRSZ); memcpy(VARDATA(ret), serialized_lwgeom->lwgeom, serialized_lwgeom->size); lwfree(hexewkb);