diff options
author | Stephen Roantree <stroantree@gmail.com> | 2012-10-25 06:29:23 -0700 |
---|---|---|
committer | Stephen Roantree <stroantree@gmail.com> | 2012-10-25 06:29:23 -0700 |
commit | 1b556315afdafde27a935f711efe212d2d988842 (patch) | |
tree | ef6ce6b9f2dfc9766bd0054cc562e3fdedbb3a42 /jv.c | |
parent | ecc8998d38ddd7da5a7f8237b883dae74ffe38cb (diff) |
Remove redundant code from jv_object_contains
Diffstat (limited to 'jv.c')
-rw-r--r-- | jv.c | 26 |
1 files changed, 5 insertions, 21 deletions
@@ -890,33 +890,17 @@ int jv_object_contains(jv a, jv b) { assert(jv_get_kind(b) == JV_KIND_OBJECT); int r = 1; - int nkeys = jv_object_length(jv_copy(b)); - jv* keys = malloc(sizeof(jv) * nkeys); - int kidx = 0; jv_object_foreach(i, b) { - keys[kidx++] = jv_object_iter_key(b, i); - } - - for (int i=0; i < nkeys; i++) { - jv a_val = jv_object_get(jv_copy(a), jv_copy(keys[i])); - jv b_val = jv_object_get(jv_copy(b), jv_copy(keys[i])); + jv key = jv_object_iter_key(b, i); + jv a_val = jv_object_get(jv_copy(a), jv_copy(key)); + jv b_val = jv_object_get(jv_copy(b), jv_copy(key)); - if (!(jv_get_kind(a_val) == jv_get_kind(b_val) - && jv_contains(jv_copy(a_val), jv_copy(b_val)))) { - r = 0; - } - - jv_free(a_val); - jv_free(b_val); + r = jv_contains(a_val, b_val); + jv_free(key); if (!r) break; } - for (int i=0; i < nkeys; i++) { - jv_free(keys[i]); - } - free(keys); - jv_free(a); jv_free(b); return r; |