diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2015-02-03 15:20:45 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2015-02-03 15:20:45 -0500 |
commit | 778d498c7d9099c784f14199a319ec2a84d91191 (patch) | |
tree | fadaee36b9806768d42e9e4f4ebdaa48186b2bb9 /src | |
parent | 91fa7b4719ac583420d9143132ba4ccddefbc5b2 (diff) | |
download | postgresql-778d498c7d9099c784f14199a319ec2a84d91191.tar.gz postgresql-778d498c7d9099c784f14199a319ec2a84d91191.zip |
Fix breakage in GEODEBUG debug code.
LINE doesn't have an "m" field (anymore anyway). Also fix unportable
assumption that %x can print the result of pointer subtraction.
In passing, improve single_decode() in minor ways:
* Remove unnecessary leading-whitespace skip (strtod does that already).
* Make GEODEBUG message more intelligible.
* Remove entirely-useless test to see if strtod returned a silly pointer.
* Don't bother computing trailing-whitespace skip unless caller wants
an ending pointer.
This has been broken since 261c7d4b653bc3e44c31fd456d94f292caa50d8f.
Although it's only debug code, might as well fix the 9.4 branch too.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/geo_ops.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c index 8fdf77bea2f..0b13c400547 100644 --- a/src/backend/utils/adt/geo_ops.c +++ b/src/backend/utils/adt/geo_ops.c @@ -128,19 +128,19 @@ single_decode(char *str, float8 *x, char **s) if (!PointerIsValid(str)) return FALSE; - while (isspace((unsigned char) *str)) - str++; *x = strtod(str, &cp); + #ifdef GEODEBUG - printf("single_decode- (%x) try decoding %s to %g\n", (cp - str), str, *x); + printf("single_decode- decoded first %d chars of \"%s\" to %g\n", + (int) (cp - str), str, *x); #endif - if (cp <= str) - return FALSE; - while (isspace((unsigned char) *cp)) - cp++; if (s != NULL) + { + while (isspace((unsigned char) *cp)) + cp++; *s = cp; + } return TRUE; } /* single_decode() */ @@ -2901,8 +2901,8 @@ close_ps(PG_FUNCTION_ARGS) result = point_copy(&lseg->p[!yh]); /* below the lseg, take lower * end pt */ #ifdef GEODEBUG - printf("close_ps below: tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps below: tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif PG_RETURN_POINT_P(result); } @@ -2913,8 +2913,8 @@ close_ps(PG_FUNCTION_ARGS) result = point_copy(&lseg->p[yh]); /* above the lseg, take higher * end pt */ #ifdef GEODEBUG - printf("close_ps above: tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps above: tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif PG_RETURN_POINT_P(result); } @@ -2925,8 +2925,8 @@ close_ps(PG_FUNCTION_ARGS) */ tmp = line_construct_pm(pt, invm); #ifdef GEODEBUG - printf("close_ps- tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps- tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif result = interpt_sl(lseg, tmp); Assert(result != NULL); |