libbb: make xrealloc_vector zero out the realloc'ed tail

function                                             old     new   delta
xrealloc_vector_helper                                51      76     +25
man_main                                             712     705      -7
act                                                  250     234     -16
create_list                                           91      70     -21
getopt_main                                          695     664     -31
load_dep_bb                                          281     248     -33
fileAction                                           744     709     -35
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/6 up/down: 25/-143)          Total: -118 bytes
This commit is contained in:
Denis Vlasenko
2008-08-04 13:20:36 +00:00
parent 2b576b8e76
commit 27842288b3
9 changed files with 30 additions and 20 deletions

View File

@@ -45,8 +45,8 @@ static int get_cached(cache_t *cp, unsigned id)
for (i = 0; i < cp->size; i++)
if (cp->cache[i].id == id)
return i;
i = cp->size;
cp->cache = xrealloc_vector(cp->cache, 2, cp->size++);
i = cp->size++;
cp->cache = xrealloc_vector(cp->cache, 2, i);
cp->cache[i++].id = id;
return -i;
}
@@ -59,8 +59,8 @@ static char* get_cached(cache_t *cp, unsigned id, ug_func* fp)
for (i = 0; i < cp->size; i++)
if (cp->cache[i].id == id)
return cp->cache[i].name;
i = cp->size;
cp->cache = xrealloc_vector(cp->cache, 2, cp->size++);
i = cp->size++;
cp->cache = xrealloc_vector(cp->cache, 2, i);
cp->cache[i].id = id;
/* Never fails. Generates numeric string if name isn't found */
fp(cp->cache[i].name, sizeof(cp->cache[i].name), id);