26#include <cxstrutils.h>
29#include <cpl_errorstate.h>
38typedef struct GiError GiError;
41static GiError _error ;
43static cxbool _error_init = FALSE;
44static cxbool _error_saved = FALSE;
56giraffe_error_init(
void)
66giraffe_error_clear(
void)
69 if (_error_init == TRUE) {
79giraffe_error_push(
void)
82 cx_assert(_error_init == TRUE);
84 _error.state = cpl_errorstate_get();
95giraffe_error_pop(
void)
98 cx_assert(_error_init == TRUE);
100 if (_error_saved == TRUE) {
102 cpl_errorstate_set(_error.state);
103 _error_saved = FALSE;