diff options
Diffstat (limited to 'json_object_private.h')
-rw-r--r-- | json_object_private.h | 72 |
1 files changed, 39 insertions, 33 deletions
diff --git a/json_object_private.h b/json_object_private.h index 5f4c425..3db0bba 100644 --- a/json_object_private.h +++ b/json_object_private.h @@ -23,46 +23,52 @@ extern "C" { /**< how many bytes are directly stored in json_object for strings? */ #define LEN_DIRECT_STRING_DATA 32 -typedef void (json_object_private_delete_fn)(struct json_object *o); +typedef void(json_object_private_delete_fn)(struct json_object *o); /* json object int type, support extension*/ -typedef enum json_object_int_type { - json_object_int_type_int64, - json_object_int_type_uint64 -}json_object_int_type; +typedef enum json_object_int_type +{ + json_object_int_type_int64, + json_object_int_type_uint64 +} json_object_int_type; struct json_object { - enum json_type o_type; - uint32_t _ref_count; - json_object_private_delete_fn *_delete; - json_object_to_json_string_fn *_to_json_string; - struct printbuf *_pb; - union data { - json_bool c_boolean; - double c_double; - struct { - union { - int64_t c_int64; - uint64_t c_uint64; - } cint; - enum json_object_int_type cint_type; - } c_int; - struct lh_table *c_object; - struct array_list *c_array; - struct { - union { - /* optimize: if we have small strings, we can store them + enum json_type o_type; + uint32_t _ref_count; + json_object_private_delete_fn *_delete; + json_object_to_json_string_fn *_to_json_string; + struct printbuf *_pb; + union data + { + json_bool c_boolean; + double c_double; + struct + { + union + { + int64_t c_int64; + uint64_t c_uint64; + } cint; + enum json_object_int_type cint_type; + } c_int; + struct lh_table *c_object; + struct array_list *c_array; + struct + { + union + { + /* optimize: if we have small strings, we can store them * directly. This saves considerable CPU cycles AND memory. */ - char *ptr; - char data[LEN_DIRECT_STRING_DATA]; - } str; - int len; - } c_string; - } o; - json_object_delete_fn *_user_delete; - void *_userdata; + char *ptr; + char data[LEN_DIRECT_STRING_DATA]; + } str; + int len; + } c_string; + } o; + json_object_delete_fn *_user_delete; + void *_userdata; }; void _json_c_set_last_err(const char *err_fmt, ...); |