summaryrefslogtreecommitdiffstats
path: root/jv_aux.c
diff options
context:
space:
mode:
authorStephen Dolan <mu@netsoc.tcd.ie>2012-12-18 16:52:47 +0000
committerStephen Dolan <mu@netsoc.tcd.ie>2012-12-18 16:53:51 +0000
commit04daafbde36ab696069a9df17ff85629574491c4 (patch)
tree66bff8def53de1a0f27038d880bd1306dc2ced39 /jv_aux.c
parent75421cbfe32ae6428fe08b6ba83f1f7ac0322c33 (diff)
Add wrappers for malloc/realloc/free. See #43.
Diffstat (limited to 'jv_aux.c')
-rw-r--r--jv_aux.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/jv_aux.c b/jv_aux.c
index 15bc3de7..a4bfddd2 100644
--- a/jv_aux.c
+++ b/jv_aux.c
@@ -1,6 +1,7 @@
#include "jv_aux.h"
#include <string.h>
#include <stdlib.h>
+#include "jv_alloc.h"
jv jv_lookup(jv t, jv k) {
jv v;
@@ -78,7 +79,7 @@ static int string_cmp(const void* pa, const void* pb){
jv jv_keys(jv x) {
if (jv_get_kind(x) == JV_KIND_OBJECT) {
int nkeys = jv_object_length(jv_copy(x));
- jv* keys = malloc(sizeof(jv) * nkeys);
+ jv* keys = jv_mem_alloc(sizeof(jv) * nkeys);
int kidx = 0;
jv_object_foreach(i, x) {
keys[kidx++] = jv_object_iter_key(x, i);
@@ -88,7 +89,7 @@ jv jv_keys(jv x) {
for (int i = 0; i<nkeys; i++) {
answer = jv_array_append(answer, keys[i]);
}
- free(keys);
+ jv_mem_free(keys);
jv_free(x);
return answer;
} else if (jv_get_kind(x) == JV_KIND_ARRAY) {
@@ -199,7 +200,7 @@ static struct sort_entry* sort_items(jv objects, jv keys) {
assert(jv_get_kind(keys) == JV_KIND_ARRAY);
assert(jv_array_length(jv_copy(objects)) == jv_array_length(jv_copy(keys)));
int n = jv_array_length(jv_copy(objects));
- struct sort_entry* entries = malloc(sizeof(struct sort_entry) * n);
+ struct sort_entry* entries = jv_mem_alloc(sizeof(struct sort_entry) * n);
for (int i=0; i<n; i++) {
entries[i].object = jv_array_get(jv_copy(objects), i);
entries[i].key = jv_array_get(jv_copy(keys), i);
@@ -221,7 +222,7 @@ jv jv_sort(jv objects, jv keys) {
jv_free(entries[i].key);
ret = jv_array_set(ret, i, entries[i].object);
}
- free(entries);
+ jv_mem_free(entries);
return ret;
}
@@ -247,6 +248,6 @@ jv jv_group(jv objects, jv keys) {
}
jv_free(curr_key);
ret = jv_array_append(ret, group);
- free(entries);
+ jv_mem_free(entries);
return ret;
}