Merge pull request #393 from besser82/enhancement/unsigned_refcount

json_object_private: Use unsigned 32-bit integer type for refcount
This commit is contained in:
Eric Haszlakiewicz
2017-12-17 09:52:27 -05:00
committed by GitHub
2 changed files with 4 additions and 1 deletions

View File

@@ -169,6 +169,9 @@ extern struct json_object* json_object_get(struct json_object *jso)
{
if (!jso) return jso;
// Don't overflow the refcounter.
assert(jso->_ref_count < UINT_FAST32_MAX);
#if defined(HAVE_ATOMIC_BUILTINS) && defined(ENABLE_THREADING)
__sync_add_and_fetch(&jso->_ref_count, 1);
#else

View File

@@ -29,7 +29,7 @@ struct json_object
enum json_type o_type;
json_object_private_delete_fn *_delete;
json_object_to_json_string_fn *_to_json_string;
int _ref_count;
uint_fast32_t _ref_count;
struct printbuf *_pb;
union data {
json_bool c_boolean;