aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pj_fwd.c19
-rw-r--r--src/pj_inv.c18
2 files changed, 36 insertions, 1 deletions
diff --git a/src/pj_fwd.c b/src/pj_fwd.c
index b2e6afd5..af0aae20 100644
--- a/src/pj_fwd.c
+++ b/src/pj_fwd.c
@@ -200,6 +200,12 @@ XY pj_fwd(LP lp, PJ *P) {
if (!P->skip_fwd_finalize)
coo = fwd_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error().xy;
+ }
+
return coo.xy;
}
@@ -208,7 +214,6 @@ XY pj_fwd(LP lp, PJ *P) {
XYZ pj_fwd3d(LPZ lpz, PJ *P) {
PJ_COORD coo = {{0,0,0,0}};
coo.lpz = lpz;
-
if (!P->skip_fwd_prepare)
coo = fwd_prepare (P, coo);
if (HUGE_VAL==coo.v[0])
@@ -230,6 +235,12 @@ XYZ pj_fwd3d(LPZ lpz, PJ *P) {
if (!P->skip_fwd_finalize)
coo = fwd_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error().xyz;
+ }
+
return coo.xyz;
}
@@ -257,5 +268,11 @@ PJ_COORD pj_fwd4d (PJ_COORD coo, PJ *P) {
if (!P->skip_fwd_finalize)
coo = fwd_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error();
+ }
+
return coo;
}
diff --git a/src/pj_inv.c b/src/pj_inv.c
index 1e84ff30..f9f11f56 100644
--- a/src/pj_inv.c
+++ b/src/pj_inv.c
@@ -198,6 +198,12 @@ LP pj_inv(XY xy, PJ *P) {
if (!P->skip_inv_finalize)
coo = inv_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error().lp;
+ }
+
return coo.lp;
}
@@ -228,6 +234,12 @@ LPZ pj_inv3d (XYZ xyz, PJ *P) {
if (!P->skip_inv_finalize)
coo = inv_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error().lpz;
+ }
+
return coo.lpz;
}
@@ -255,5 +267,11 @@ PJ_COORD pj_inv4d (PJ_COORD coo, PJ *P) {
if (!P->skip_inv_finalize)
coo = inv_finalize (P, coo);
+
+ if (proj_errno(P)) {
+ proj_errno_reset(P);
+ return proj_coord_error();
+ }
+
return coo;
}