Make json_abort() internal to json_object.c

This commit is contained in:
Eric Haszlakiewicz
2020-04-18 02:05:37 +00:00
parent 5cc11289b4
commit 23ddcbd4da
3 changed files with 25 additions and 23 deletions

View File

@@ -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_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 */
#ifdef REFCOUNT_DEBUG
@@ -1631,3 +1649,10 @@ int json_object_deep_copy(struct json_object *src, struct json_object **dst,
return rc;
}
static void json_abort(const char *message)
{
if (message != NULL)
fprintf(stderr, "json-c aborts with error: %s\n", message);
abort();
}

View File

@@ -297,9 +297,3 @@ const char *json_type_to_name(enum json_type 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();
}

View File

@@ -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);
#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
}
#endif