aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/c_api.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-12-15 00:51:46 +0100
committerEven Rouault <even.rouault@spatialys.com>2020-12-15 01:13:43 +0100
commit244a24104ded3a4573aeffa32160af21f76cbce6 (patch)
treef3a11529172719657cf7576e062e45e0f9452db5 /src/iso19111/c_api.cpp
parent1e9894b0e2b161e61546672bccb85a9ef21df541 (diff)
downloadPROJ-244a24104ded3a4573aeffa32160af21f76cbce6.tar.gz
PROJ-244a24104ded3a4573aeffa32160af21f76cbce6.zip
Revise error codes to have a reduced set exposed in the public API.
Fixes #2482 And also add proj_context_errno_string() Revise gie 'expect failure errno XXXX' strings
Diffstat (limited to 'src/iso19111/c_api.cpp')
-rw-r--r--src/iso19111/c_api.cpp74
1 files changed, 73 insertions, 1 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp
index 6bc1f166..cb0c113a 100644
--- a/src/iso19111/c_api.cpp
+++ b/src/iso19111/c_api.cpp
@@ -82,7 +82,7 @@ static void PROJ_NO_INLINE proj_log_error(PJ_CONTEXT *ctx, const char *function,
auto previous_errno = proj_context_errno(ctx);
if (previous_errno == 0) {
// only set errno if it wasn't set deeper down the call stack
- proj_context_errno_set(ctx, PJD_ERR_GENERIC_ERROR);
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER);
}
}
@@ -344,6 +344,7 @@ const char *proj_context_get_database_metadata(PJ_CONTEXT *ctx,
const char *key) {
SANITIZE_CTX(ctx);
if (!key) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -375,6 +376,7 @@ PJ_GUESSED_WKT_DIALECT proj_context_guess_wkt_dialect(PJ_CONTEXT *ctx,
const char *wkt) {
(void)ctx;
if (!wkt) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return PJ_GUESSED_NOT_WKT;
}
@@ -423,6 +425,7 @@ static const char *getOptionValue(const char *option,
PJ *proj_clone(PJ_CONTEXT *ctx, const PJ *obj) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -458,6 +461,7 @@ PJ *proj_clone(PJ_CONTEXT *ctx, const PJ *obj) {
PJ *proj_create(PJ_CONTEXT *ctx, const char *text) {
SANITIZE_CTX(ctx);
if (!text) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -534,6 +538,7 @@ PJ *proj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt,
PROJ_STRING_LIST *out_grammar_errors) {
SANITIZE_CTX(ctx);
if (!wkt) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -647,6 +652,7 @@ PJ *proj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name,
const char *const *options) {
SANITIZE_CTX(ctx);
if (!auth_name || !code) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -752,6 +758,7 @@ int proj_uom_get_info_from_database(PJ_CONTEXT *ctx, const char *auth_name,
SANITIZE_CTX(ctx);
if (!auth_name || !code) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -804,6 +811,7 @@ int PROJ_DLL proj_grid_get_info_from_database(
int *out_direct_download, int *out_open_license, int *out_available) {
SANITIZE_CTX(ctx);
if (!grid_name) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -863,6 +871,7 @@ PJ_OBJ_LIST *proj_query_geodetic_crs_from_datum(PJ_CONTEXT *ctx,
const char *crs_type) {
SANITIZE_CTX(ctx);
if (!datum_auth_name || !datum_code) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1200,6 +1209,7 @@ int proj_is_deprecated(const PJ *obj) {
PJ_OBJ_LIST *proj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1230,6 +1240,7 @@ static int proj_is_equivalent_to_internal(PJ_CONTEXT *ctx, const PJ *obj,
if (!obj || !other) {
if (ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
}
return false;
@@ -1435,6 +1446,7 @@ const char *proj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, PJ_WKT_TYPE type,
const char *const *options) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1536,6 +1548,7 @@ const char *proj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj,
const char *const *options) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1625,6 +1638,7 @@ const char *proj_as_projjson(PJ_CONTEXT *ctx, const PJ *obj,
const char *const *options) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1784,6 +1798,7 @@ int proj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj,
static const GeodeticCRS *extractGeodeticCRS(PJ_CONTEXT *ctx, const PJ *crs,
const char *fname) {
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, fname, "missing required input");
return nullptr;
}
@@ -1841,6 +1856,7 @@ PJ *proj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) {
PJ *proj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1875,6 +1891,7 @@ PJ *proj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs,
const PJ *hub_crs, const PJ *transformation) {
SANITIZE_CTX(ctx);
if (!base_crs || !hub_crs || !transformation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1934,6 +1951,7 @@ PJ *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, const PJ *crs,
const char *const *options) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -1996,6 +2014,7 @@ PJ *proj_crs_create_bound_vertical_crs(PJ_CONTEXT *ctx, const PJ *vert_crs,
const char *grid_name) {
SANITIZE_CTX(ctx);
if (!vert_crs || !hub_geographic_3D_crs || !grid_name) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -2122,6 +2141,7 @@ int proj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid,
double *out_inv_flattening) {
SANITIZE_CTX(ctx);
if (!ellipsoid) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return FALSE;
}
@@ -2203,6 +2223,7 @@ int proj_prime_meridian_get_parameters(PJ_CONTEXT *ctx,
const char **out_unit_name) {
SANITIZE_CTX(ctx);
if (!prime_meridian) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -2288,6 +2309,7 @@ PJ *proj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) {
PJ *proj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -2372,6 +2394,7 @@ PJ_OBJ_LIST *proj_identify(PJ_CONTEXT *ctx, const PJ *obj,
int **out_confidence) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -2468,6 +2491,7 @@ PROJ_STRING_LIST proj_get_codes_from_database(PJ_CONTEXT *ctx,
int allow_deprecated) {
SANITIZE_CTX(ctx);
if (!auth_name) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -2824,6 +2848,7 @@ void proj_unit_list_destroy(PROJ_UNIT_INFO **list) {
PJ *proj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -2868,6 +2893,7 @@ int proj_coordoperation_get_method_info(PJ_CONTEXT *ctx,
const char **out_method_code) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -3416,6 +3442,7 @@ PJ *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name,
SANITIZE_CTX(ctx);
if (!horiz_crs || !vert_crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3458,6 +3485,7 @@ PJ *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name,
PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, const char *name) {
SANITIZE_CTX(ctx);
if (!obj || !name) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3495,6 +3523,7 @@ PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx, const PJ *obj,
const char *auth_name, const char *code) {
SANITIZE_CTX(ctx);
if (!obj || !auth_name || !code) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3535,6 +3564,7 @@ PJ *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj,
const PJ *new_geod_crs) {
SANITIZE_CTX(ctx);
if (!obj || !new_geod_crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3648,6 +3678,7 @@ PJ *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj,
const char *unit_code) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3700,6 +3731,7 @@ PJ *proj_crs_alter_parameters_linear_unit(PJ_CONTEXT *ctx, const PJ *obj,
int convert_to_new_unit) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3745,6 +3777,7 @@ PJ *proj_crs_promote_to_3D(PJ_CONTEXT *ctx, const char *crs_3D_name,
const PJ *crs_2D) {
SANITIZE_CTX(ctx);
if (!crs_2D) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3804,6 +3837,7 @@ PJ *proj_crs_create_projected_3D_crs_from_2D(PJ_CONTEXT *ctx,
const PJ *geog_3D_crs) {
SANITIZE_CTX(ctx);
if (!projected_2D_crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -3889,6 +3923,7 @@ PJ *proj_crs_demote_to_2D(PJ_CONTEXT *ctx, const char *crs_2D_name,
const PJ *crs_3D) {
SANITIZE_CTX(ctx);
if (!crs_3D) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -4097,6 +4132,7 @@ PJ *proj_create_transformation(PJ_CONTEXT *ctx, const char *name,
double accuracy) {
SANITIZE_CTX(ctx);
if (!source_crs || !target_crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -4182,6 +4218,7 @@ PJ *proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx,
const char *new_method_name) {
SANITIZE_CTX(ctx);
if (!conversion) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -4566,6 +4603,7 @@ PJ *proj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name,
const PJ *coordinate_system) {
SANITIZE_CTX(ctx);
if (!geodetic_crs || !conversion || !coordinate_system) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -6897,6 +6935,7 @@ int proj_coordoperation_is_instantiable(PJ_CONTEXT *ctx,
const PJ *coordoperation) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -6942,6 +6981,7 @@ int proj_coordoperation_has_ballpark_transformation(PJ_CONTEXT *ctx,
const PJ *coordoperation) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -6968,6 +7008,7 @@ int proj_coordoperation_get_param_count(PJ_CONTEXT *ctx,
const PJ *coordoperation) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -6996,6 +7037,7 @@ int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx,
const char *name) {
SANITIZE_CTX(ctx);
if (!coordoperation || !name) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return -1;
}
@@ -7057,6 +7099,7 @@ int proj_coordoperation_get_param(
const char **out_unit_code, const char **out_unit_category) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -7186,6 +7229,7 @@ int proj_coordoperation_get_towgs84_values(PJ_CONTEXT *ctx,
int emit_error_if_incompatible) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -7225,6 +7269,7 @@ int proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx,
const PJ *coordoperation) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -7418,6 +7463,7 @@ void proj_operation_factory_context_set_desired_accuracy(
double accuracy) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7449,6 +7495,7 @@ void proj_operation_factory_context_set_area_of_interest(
double north_lat_degree) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7478,6 +7525,7 @@ void proj_operation_factory_context_set_crs_extent_use(
PROJ_CRS_EXTENT_USE use) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7527,6 +7575,7 @@ void PROJ_DLL proj_operation_factory_context_set_spatial_criterion(
PROJ_SPATIAL_CRITERION criterion) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7564,6 +7613,7 @@ void PROJ_DLL proj_operation_factory_context_set_grid_availability_use(
PROJ_GRID_AVAILABILITY_USE use) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7614,6 +7664,7 @@ void proj_operation_factory_context_set_use_proj_alternative_grid_names(
int usePROJNames) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7650,6 +7701,7 @@ void proj_operation_factory_context_set_allow_use_intermediate_crs(
PROJ_INTERMEDIATE_CRS_USE use) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7691,6 +7743,7 @@ void proj_operation_factory_context_set_allowed_intermediate_crs(
const char *const *list_of_auth_name_codes) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7720,6 +7773,7 @@ void PROJ_DLL proj_operation_factory_context_set_discard_superseded(
PJ_CONTEXT *ctx, PJ_OPERATION_FACTORY_CONTEXT *factory_ctx, int discard) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7743,6 +7797,7 @@ void PROJ_DLL proj_operation_factory_context_set_allow_ballpark_transformations(
PJ_CONTEXT *ctx, PJ_OPERATION_FACTORY_CONTEXT *factory_ctx, int allow) {
SANITIZE_CTX(ctx);
if (!factory_ctx) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return;
}
@@ -7840,6 +7895,7 @@ proj_create_operations(PJ_CONTEXT *ctx, const PJ *source_crs,
const PJ_OPERATION_FACTORY_CONTEXT *operationContext) {
SANITIZE_CTX(ctx);
if (!source_crs || !target_crs || !operationContext) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -7951,6 +8007,7 @@ int proj_list_get_count(const PJ_OBJ_LIST *result) {
PJ *proj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, int index) {
SANITIZE_CTX(ctx);
if (!result) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -7984,6 +8041,7 @@ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx,
const PJ *coordoperation) {
SANITIZE_CTX(ctx);
if (!coordoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return -1;
}
@@ -8024,6 +8082,7 @@ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx,
PJ *proj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8060,6 +8119,7 @@ PJ *proj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) {
PJ *proj_crs_get_datum_ensemble(PJ_CONTEXT *ctx, const PJ *crs) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8088,6 +8148,7 @@ int proj_datum_ensemble_get_member_count(PJ_CONTEXT *ctx,
const PJ *datum_ensemble) {
SANITIZE_CTX(ctx);
if (!datum_ensemble) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return 0;
}
@@ -8114,6 +8175,7 @@ double proj_datum_ensemble_get_accuracy(PJ_CONTEXT *ctx,
const PJ *datum_ensemble) {
SANITIZE_CTX(ctx);
if (!datum_ensemble) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return -1;
}
@@ -8152,6 +8214,7 @@ PJ *proj_datum_ensemble_get_member(PJ_CONTEXT *ctx, const PJ *datum_ensemble,
int member_index) {
SANITIZE_CTX(ctx);
if (!datum_ensemble) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8191,6 +8254,7 @@ PJ *proj_datum_ensemble_get_member(PJ_CONTEXT *ctx, const PJ *datum_ensemble,
PJ *proj_crs_get_datum_forced(PJ_CONTEXT *ctx, const PJ *crs) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8225,6 +8289,7 @@ double proj_dynamic_datum_get_frame_reference_epoch(PJ_CONTEXT *ctx,
const PJ *datum) {
SANITIZE_CTX(ctx);
if (!datum) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return -1;
}
@@ -8259,6 +8324,7 @@ double proj_dynamic_datum_get_frame_reference_epoch(PJ_CONTEXT *ctx,
PJ *proj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) {
SANITIZE_CTX(ctx);
if (!crs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8281,6 +8347,7 @@ PJ *proj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) {
PJ_COORDINATE_SYSTEM_TYPE proj_cs_get_type(PJ_CONTEXT *ctx, const PJ *cs) {
SANITIZE_CTX(ctx);
if (!cs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return PJ_CS_TYPE_UNKNOWN;
}
@@ -8330,6 +8397,7 @@ PJ_COORDINATE_SYSTEM_TYPE proj_cs_get_type(PJ_CONTEXT *ctx, const PJ *cs) {
int proj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) {
SANITIZE_CTX(ctx);
if (!cs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return -1;
}
@@ -8373,6 +8441,7 @@ int proj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ *cs, int index,
const char **out_unit_code) {
SANITIZE_CTX(ctx);
if (!cs) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -8526,6 +8595,7 @@ PJ *proj_coordoperation_create_inverse(PJ_CONTEXT *ctx, const PJ *obj) {
SANITIZE_CTX(ctx);
if (!obj) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}
@@ -8557,6 +8627,7 @@ int proj_concatoperation_get_step_count(PJ_CONTEXT *ctx,
const PJ *concatoperation) {
SANITIZE_CTX(ctx);
if (!concatoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return false;
}
@@ -8590,6 +8661,7 @@ PJ *proj_concatoperation_get_step(PJ_CONTEXT *ctx, const PJ *concatoperation,
int i_step) {
SANITIZE_CTX(ctx);
if (!concatoperation) {
+ proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE);
proj_log_error(ctx, __FUNCTION__, "missing required input");
return nullptr;
}