From: Greg Hazel Date: Fri, 11 Jan 2013 09:36:55 +0000 (-0800) Subject: add json_object_object_length X-Git-Tag: json-c-0.11-20130402~19^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F62%2Fhead;p=thirdparty%2Fjson-c.git add json_object_object_length --- diff --git a/json_object.c b/json_object.c index 6060554a..9dc66375 100644 --- a/json_object.c +++ b/json_object.c @@ -390,6 +390,11 @@ void json_object_object_add(struct json_object* jso, const char *key, existing_entry->v = val; } +int json_object_object_length(struct json_object *jso) +{ + return lh_table_length(jso->o.c_object); +} + struct json_object* json_object_object_get(struct json_object* jso, const char *key) { struct json_object *result = NULL; diff --git a/json_object.h b/json_object.h index 0ff65845..336ce96a 100644 --- a/json_object.h +++ b/json_object.h @@ -215,6 +215,8 @@ extern struct json_object* json_object_new_object(void); */ extern struct lh_table* json_object_get_object(struct json_object *obj); +extern int json_object_object_length(struct json_object* obj); + /** Add an object field to a json_object of type json_type_object * * The reference count will *not* be incremented. This is to make adding diff --git a/linkhash.c b/linkhash.c index ddedc126..26618239 100644 --- a/linkhash.c +++ b/linkhash.c @@ -227,3 +227,7 @@ int lh_table_delete(struct lh_table *t, const void *k) return lh_table_delete_entry(t, e); } +int lh_table_length(struct lh_table *t) +{ + return t->count; +} diff --git a/linkhash.h b/linkhash.h index bbb54886..378de0b7 100644 --- a/linkhash.h +++ b/linkhash.h @@ -280,6 +280,7 @@ extern int lh_table_delete_entry(struct lh_table *t, struct lh_entry *e); */ extern int lh_table_delete(struct lh_table *t, const void *k); +extern int lh_table_length(struct lh_table *t); void lh_abort(const char *msg, ...); void lh_table_resize(struct lh_table *t, int new_size);