From: Paul Eggert Date: Mon, 27 Oct 2003 08:41:23 +0000 (+0000) Subject: Modify exclude.c to use new xalloc primitives, for simplicity. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78248aae5f70a366d0b0cbf827dacf21b795b84f;p=pspp Modify exclude.c to use new xalloc primitives, for simplicity. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 70c6ab8425..2c3e1f0711 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,12 @@ +2003-10-27 Paul Eggert + + * exclude.c (new_exclude): Use xzalloc rather than xmalloc + to allocate the returned structure. Do not allocate a subarray, + as x2nrealloc will do that. + (add_exclude): Use x2nrealloc to reallocate ex->exclude, + instead of xnrealloc. + (add_exclude_file): Use x2realloc instead of malloc + xnrealloc. + 2003-10-26 Paul Eggert * xalloc.h (xalloc_oversized): New static inline function, for diff --git a/lib/exclude.c b/lib/exclude.c index cb43326667..55f1a39185 100644 --- a/lib/exclude.c +++ b/lib/exclude.c @@ -93,11 +93,7 @@ struct exclude struct exclude * new_exclude (void) { - struct exclude *ex = xmalloc (sizeof *ex); - ex->exclude_count = 0; - ex->exclude_alloc = 60; - ex->exclude = xmalloc (ex->exclude_alloc * sizeof ex->exclude[0]); - return ex; + return xzalloc (sizeof *new_exclude ()); } /* Free the storage associated with an exclude list. */ @@ -188,12 +184,9 @@ add_exclude (struct exclude *ex, char const *pattern, int options) { struct patopts *patopts; - if (ex->exclude_alloc <= ex->exclude_count) - { - ex->exclude = xnrealloc (ex->exclude, ex->exclude_alloc, - 2 * sizeof *ex->exclude); - ex->exclude_alloc *= 2; - } + if (ex->exclude_count == ex->exclude_alloc) + ex->exclude = x2nrealloc (ex->exclude, &ex->exclude_alloc, + sizeof *ex->exclude); patopts = &ex->exclude[ex->exclude_count++]; patopts->pattern = pattern; @@ -212,11 +205,11 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, int), { bool use_stdin = filename[0] == '-' && !filename[1]; FILE *in; - char *buf; + char *buf = NULL; char *p; char const *pattern; char const *lim; - size_t buf_alloc = 1000; + size_t buf_alloc = 0; size_t buf_count = 0; int c; int e = 0; @@ -226,16 +219,11 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, int), else if (! (in = fopen (filename, "r"))) return -1; - buf = xmalloc (buf_alloc); - while ((c = getc (in)) != EOF) { - buf[buf_count++] = c; if (buf_count == buf_alloc) - { - buf = xnrealloc (buf, buf_alloc, 2); - buf_alloc *= 2; - } + buf = x2realloc (buf, &buf_alloc); + buf[buf_count++] = c; } if (ferror (in))