From 36254aa73fc85e84a3d86f9988936692a6dacdb5 Mon Sep 17 00:00:00 2001 From: des Date: Tue, 5 Feb 2002 22:15:16 +0000 Subject: Switch to a self-starting allocation scheme. --- lib/libfetch/common.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index f2a1732..559c665 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -359,25 +359,18 @@ _fetch_add_entry(struct url_ent **p, int *size, int *len, struct url_ent *tmp; if (*p == NULL) { -#define INITIAL_SIZE 8 - if ((*p = malloc(INITIAL_SIZE * sizeof **p)) == NULL) { - errno = ENOMEM; - _fetch_syserr(); - return (-1); - } - *size = INITIAL_SIZE; + *size = 0; *len = 0; -#undef INITIAL_SIZE } if (*len >= *size - 1) { - tmp = realloc(*p, *size * 2 * sizeof **p); + tmp = realloc(*p, (*size * 2 + 1) * sizeof **p); if (tmp == NULL) { errno = ENOMEM; _fetch_syserr(); return (-1); } - *size *= 2; + *size = (*size * 2 + 1); *p = tmp; } -- cgit v1.1