From 9f19209c77b2131e89d3e7fb12771fb26ef491b3 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sun, 2 Dec 2012 11:48:57 +0100 Subject: rsrctool: produce an actually usuable entry list of the rsrc file Change-Id: I6c8e5f3faf04741e4a13c1e705e9e869ccf8cfec --- utils/imxtools/sbtools/misc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'utils/imxtools/sbtools/misc.c') diff --git a/utils/imxtools/sbtools/misc.c b/utils/imxtools/sbtools/misc.c index d88b2bc858..dae4f92121 100644 --- a/utils/imxtools/sbtools/misc.c +++ b/utils/imxtools/sbtools/misc.c @@ -84,6 +84,26 @@ void *augment_array(void *arr, size_t elem_sz, size_t cnt, void *aug, size_t aug return p; } +void augment_array_ex(void **arr, size_t elem_sz, int *cnt, int *capacity, + void *aug, int aug_cnt) +{ + /* if capacity is not large enough, double it */ + if(*cnt + aug_cnt > *capacity) + { + if(*capacity == 0) + *capacity = 1; + while(*cnt + aug_cnt > *capacity) + *capacity *= 2; + void *p = xmalloc(elem_sz * (*capacity)); + memcpy(p, *arr, elem_sz * (*cnt)); + free(*arr); + *arr = p; + } + /* copy elements */ + memcpy(*arr + elem_sz * (*cnt), aug, elem_sz * aug_cnt); + *cnt += aug_cnt; +} + /** * Key file parsing */ -- cgit v1.2.3