diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-03-20 14:28:40 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-03-20 14:30:48 +0200 |
commit | bd3fdbd5b279504bbb64902f462fb0ad93f29389 (patch) | |
tree | f7e87bda3030a5e99f999c1e97dcce14abe5a654 | |
parent | 387d98b80d9f383c4c7708a42444472cb89dd42b (diff) |
Tighten error code accessors to check error type
-rw-r--r-- | libxsde/xsde/cxx/parser/context.ixx | 18 | ||||
-rw-r--r-- | libxsde/xsde/cxx/serializer/context.ixx | 24 |
2 files changed, 23 insertions, 19 deletions
diff --git a/libxsde/xsde/cxx/parser/context.ixx b/libxsde/xsde/cxx/parser/context.ixx index be99974..4eca363 100644 --- a/libxsde/xsde/cxx/parser/context.ixx +++ b/libxsde/xsde/cxx/parser/context.ixx @@ -80,7 +80,7 @@ namespace xsde inline int context:: app_error () const { - return error_code_.app; + return error_type_ == error_app ? error_code_.app : 0; } inline void context:: @@ -90,25 +90,27 @@ namespace xsde error_code_.app = e; } + inline context::sys_error_t context:: + sys_error () const + { + return error_type_ == error_sys ? error_code_.sys : sys_error::none; + } + inline void context:: sys_error (sys_error_t e) { error_type_ = error_sys; error_code_.sys = e; } - - inline context::sys_error_t context:: - sys_error () const - { - return error_code_.sys; - } #endif #ifdef XSDE_PARSER_VALIDATION inline context::schema_error_t context:: schema_error () const { - return error_code_.schema; + return error_type_ == error_schema + ? error_code_.schema + : schema_error::none; } inline void context:: diff --git a/libxsde/xsde/cxx/serializer/context.ixx b/libxsde/xsde/cxx/serializer/context.ixx index c04cd6c..f881d09 100644 --- a/libxsde/xsde/cxx/serializer/context.ixx +++ b/libxsde/xsde/cxx/serializer/context.ixx @@ -108,7 +108,7 @@ namespace xsde inline int context:: app_error () const { - return error_code_.app; + return error_type_ == error_app ? error_code_.app : 0; } inline void context:: @@ -118,6 +118,12 @@ namespace xsde error_code_.app = e; } + inline context::sys_error_t context:: + sys_error () const + { + return error_type_ == error_sys ? error_code_.sys : sys_error::none; + } + inline void context:: sys_error (sys_error_t e) { @@ -125,10 +131,10 @@ namespace xsde error_code_.sys = e; } - inline context::sys_error_t context:: - sys_error () const + inline context::xml_error_t context:: + xml_error () const { - return error_code_.sys; + return error_type_ == error_xml ? error_code_.xml : xml_error::none; } inline void context:: @@ -137,19 +143,15 @@ namespace xsde error_type_ = error_xml; error_code_.xml = e; } - - inline context::xml_error_t context:: - xml_error () const - { - return error_code_.xml; - } #endif #ifdef XSDE_SERIALIZER_VALIDATION inline context::schema_error_t context:: schema_error () const { - return error_code_.schema; + return error_type_ == error_schema + ? error_code_.schema + : schema_error::none; } inline void context:: |