mirror of
https://github.com/json-c/json-c.git
synced 2026-04-03 20:39:07 +08:00
Make json_abort() internal to json_object.c
This commit is contained in:
@@ -55,6 +55,24 @@ static json_object_to_json_string_fn json_object_string_to_json_string;
|
|||||||
static json_object_to_json_string_fn json_object_array_to_json_string;
|
static json_object_to_json_string_fn json_object_array_to_json_string;
|
||||||
static json_object_to_json_string_fn _json_object_userdata_to_json_string;
|
static json_object_to_json_string_fn _json_object_userdata_to_json_string;
|
||||||
|
|
||||||
|
#ifndef JSON_NORETURN
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define JSON_NORETURN __declspec(noreturn)
|
||||||
|
#else
|
||||||
|
/* 'cold' attribute is for optimization, telling the computer this code
|
||||||
|
* path is unlikely.
|
||||||
|
*/
|
||||||
|
#define JSON_NORETURN __attribute__((noreturn, cold))
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
/**
|
||||||
|
* Abort and optionally print a message on standard error.
|
||||||
|
* This should be used rather than assert() for unconditional abortion
|
||||||
|
* (in particular for code paths which are never supposed to be run).
|
||||||
|
* */
|
||||||
|
JSON_NORETURN static void json_abort(const char *message);
|
||||||
|
|
||||||
|
|
||||||
/* ref count debugging */
|
/* ref count debugging */
|
||||||
|
|
||||||
#ifdef REFCOUNT_DEBUG
|
#ifdef REFCOUNT_DEBUG
|
||||||
@@ -1631,3 +1649,10 @@ int json_object_deep_copy(struct json_object *src, struct json_object **dst,
|
|||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void json_abort(const char *message)
|
||||||
|
{
|
||||||
|
if (message != NULL)
|
||||||
|
fprintf(stderr, "json-c aborts with error: %s\n", message);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|||||||
@@ -297,9 +297,3 @@ const char *json_type_to_name(enum json_type o_type)
|
|||||||
return json_type_name[o_type];
|
return json_type_name[o_type];
|
||||||
}
|
}
|
||||||
|
|
||||||
void json_abort(const char *message)
|
|
||||||
{
|
|
||||||
if (message != NULL)
|
|
||||||
fprintf(stderr, "json-c aborts with error: %s\n", message);
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
|
|||||||
17
json_util.h
17
json_util.h
@@ -110,23 +110,6 @@ JSON_EXPORT int json_parse_double(const char *buf, double *retval);
|
|||||||
*/
|
*/
|
||||||
JSON_EXPORT const char *json_type_to_name(enum json_type o_type);
|
JSON_EXPORT const char *json_type_to_name(enum json_type o_type);
|
||||||
|
|
||||||
#ifndef JSON_NORETURN
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#define JSON_NORETURN __declspec(noreturn)
|
|
||||||
#else
|
|
||||||
/* 'cold' attribute is for optimization, telling the computer this code
|
|
||||||
* path is unlikely.
|
|
||||||
*/
|
|
||||||
#define JSON_NORETURN __attribute__((noreturn, cold))
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
/**
|
|
||||||
* Abort and optionally print a message on standard error.
|
|
||||||
* This should be used rather than assert() for unconditional abortion
|
|
||||||
* (in particular for code paths which are never supposed to be run).
|
|
||||||
* */
|
|
||||||
JSON_NORETURN JSON_EXPORT void json_abort(const char *message);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user