diff options
author | Bastiaan Olij <mux213@gmail.com> | 2021-12-08 18:31:06 +1100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-02-23 11:50:45 +0100 |
commit | 65bae5a3411a6fd2dbfc9f8e364040024fa81b04 (patch) | |
tree | 0724a9c660a37bbb6305a11d893345dda71f6630 /thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h | |
parent | fcf8c2006d39d4e1d97f68e2463514cfa60b5f21 (diff) | |
download | redot-engine-65bae5a3411a6fd2dbfc9f8e364040024fa81b04.tar.gz |
Add OpenXR 1.0.22 to thirdparty libraries
Will be compiled and used in the next commit.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Diffstat (limited to 'thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h')
-rw-r--r-- | thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h b/thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h new file mode 100644 index 0000000000..666fa7f542 --- /dev/null +++ b/thirdparty/openxr/src/external/jsoncpp/include/json/assertions.h @@ -0,0 +1,61 @@ +// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors +// Distributed under MIT license, or public domain if desired and +// recognized in your jurisdiction. +// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE + +#ifndef JSON_ASSERTIONS_H_INCLUDED +#define JSON_ASSERTIONS_H_INCLUDED + +#include <cstdlib> +#include <sstream> + +#if !defined(JSON_IS_AMALGAMATION) +#include "config.h" +#endif // if !defined(JSON_IS_AMALGAMATION) + +/** It should not be possible for a maliciously designed file to + * cause an abort() or seg-fault, so these macros are used only + * for pre-condition violations and internal logic errors. + */ +#if JSON_USE_EXCEPTION + +// @todo <= add detail about condition in exception +#define JSON_ASSERT(condition) \ + do { \ + if (!(condition)) { \ + Json::throwLogicError("assert json failed"); \ + } \ + } while (0) + +#define JSON_FAIL_MESSAGE(message) \ + do { \ + OStringStream oss; \ + oss << message; \ + Json::throwLogicError(oss.str()); \ + abort(); \ + } while (0) + +#else // JSON_USE_EXCEPTION + +#define JSON_ASSERT(condition) assert(condition) + +// The call to assert() will show the failure message in debug builds. In +// release builds we abort, for a core-dump or debugger. +#define JSON_FAIL_MESSAGE(message) \ + { \ + OStringStream oss; \ + oss << message; \ + assert(false && oss.str().c_str()); \ + abort(); \ + } + +#endif + +#define JSON_ASSERT_MESSAGE(condition, message) \ + do { \ + if (!(condition)) { \ + JSON_FAIL_MESSAGE(message); \ + } \ + } while (0) + +#endif // JSON_ASSERTIONS_H_INCLUDED |