mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-27 11:21:02 +08:00
9704cedb20
CPPTL support is no longer relevant to JsonCpp, and can be removed from the library. This patch removes all mentions of CPPTL, by removing all definitions and code sections conditionally compiled only when JsonCpp is used with CPPTL. Include guards are also renamed to not refer to CPPTL where appropriate.
60 lines
2.6 KiB
C
60 lines
2.6 KiB
C
// 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) \
|
|
{ \
|
|
if (!(condition)) { \
|
|
Json::throwLogicError("assert json failed"); \
|
|
} \
|
|
}
|
|
|
|
#define JSON_FAIL_MESSAGE(message) \
|
|
{ \
|
|
OStringStream oss; \
|
|
oss << message; \
|
|
Json::throwLogicError(oss.str()); \
|
|
abort(); \
|
|
}
|
|
|
|
#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) \
|
|
if (!(condition)) { \
|
|
JSON_FAIL_MESSAGE(message); \
|
|
}
|
|
|
|
#endif // JSON_ASSERTIONS_H_INCLUDED
|