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
return rc;
}
+
+static void json_abort(const char *message)
+{
+ if (message != NULL)
+ fprintf(stderr, "json-c aborts with error: %s\n", message);
+ abort();
+}
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();
-}
*/
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