Blame | Last modification | View Log | Download | RSS feed
#ifndef LIBJSON_GUARD_DEBUG_H#define LIBJSON_GUARD_DEBUG_H#include "JSONDefs.h"#include "JSONStats.h"#ifdef JSON_DEBUG#ifdef JSON_SAFE#define JSON_ASSERT_SAFE(condition, msg, code)\{\if (json_unlikely(!(condition))){\JSON_FAIL(msg);\code\}\}#define JSON_FAIL_SAFE(msg, code)\{\JSON_FAIL(msg);\code\}#else#define JSON_ASSERT_SAFE(condition, msg, code) JSON_ASSERT(condition, msg)#define JSON_FAIL_SAFE(msg, code) JSON_FAIL(msg)#endif#define JSON_FAIL(msg) JSONDebug::_JSON_FAIL(msg)#define JSON_ASSERT(bo, msg) JSONDebug::_JSON_ASSERT(bo, msg)class JSONDebug {public:#ifndef JSON_STDERRORstatic json_error_callback_t register_callback(json_error_callback_t callback) json_nothrow json_cold;#endifstatic void _JSON_FAIL(const json_string & msg) json_nothrow json_cold;static void _JSON_ASSERT(bool condition, const json_string & msg) json_nothrow json_cold;};#else#ifdef JSON_SAFE#define JSON_ASSERT_SAFE(condition, msg, code)\{\if (json_unlikely(!(condition))){\code\}\}#define JSON_FAIL_SAFE(msg, code)\{\code\}#else#define JSON_ASSERT_SAFE(condition, msg, code)#define JSON_FAIL_SAFE(msg, code)#endif#define JSON_ASSERT(condition, msg)#define JSON_FAIL(msg)#endif#endif