diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2018-04-25 23:52:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-25 23:52:22 +0200 |
| commit | fdf8f02538bff49ed5b986c26aed68da335f09c8 (patch) | |
| tree | 7b6b030d8c782e17ebf7de4a99802487882488dc /src | |
| parent | 968fcad7ae5064e733978f47d5e93a9baf6a5c46 (diff) | |
| parent | 0dc275a312c1b2ddefc066c66787eb8274d60f08 (diff) | |
| download | PROJ-fdf8f02538bff49ed5b986c26aed68da335f09c8.tar.gz PROJ-fdf8f02538bff49ed5b986c26aed68da335f09c8.zip | |
Merge pull request #955 from rouault/fix_pj_transform_multiple_transforms
pj_transform: reset error state before each call to pj_inv/pj_fwd
Diffstat (limited to 'src')
| -rw-r--r-- | src/pj_transform.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pj_transform.c b/src/pj_transform.c index 22b685b2..aaa8c1e4 100644 --- a/src/pj_transform.c +++ b/src/pj_transform.c @@ -42,6 +42,8 @@ enum PJ_DIRECTION { }; typedef enum PJ_DIRECTION PJ_DIRECTION; +/* Copied from proj.h FIXME */ +int proj_errno_reset (const PJ *P); static int adjust_axis( projCtx ctx, const char *axis, int denormalize_flag, @@ -199,6 +201,7 @@ static int geographic_to_projected (PJ *P, long n, int dist, double *x, double * if (geodetic_loc.u == HUGE_VAL) continue; + proj_errno_reset( P ); projected_loc = pj_fwd3d( geodetic_loc, P); if( P->ctx->last_errno != 0 ) { @@ -234,6 +237,7 @@ static int geographic_to_projected (PJ *P, long n, int dist, double *x, double * if( geodetic_loc.u == HUGE_VAL ) continue; + proj_errno_reset( P ); projected_loc = pj_fwd( geodetic_loc, P ); if( P->ctx->last_errno != 0 ) { @@ -301,6 +305,7 @@ static int projected_to_geographic (PJ *P, long n, int dist, double *x, double * if (projected_loc.u == HUGE_VAL) continue; + proj_errno_reset( P ); geodetic_loc = pj_inv3d(projected_loc, P); if( P->ctx->last_errno != 0 ) { @@ -337,6 +342,7 @@ static int projected_to_geographic (PJ *P, long n, int dist, double *x, double * if( projected_loc.u == HUGE_VAL ) continue; + proj_errno_reset( P ); geodetic_loc = pj_inv( projected_loc, P ); if( P->ctx->last_errno != 0 ) { |
