From: Jim Meyering Date: Fri, 31 Oct 2003 13:47:11 +0000 (+0000) Subject: Update from gnulib. X-Git-Tag: v5.1.0~289 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87e53abf5549e908e7ea12bfa6ae00cb6ca2f8d4;p=thirdparty%2Fcoreutils.git Update from gnulib. --- diff --git a/lib/linebuffer.c b/lib/linebuffer.c index 434d6d8588..0d35fc0ce3 100644 --- a/lib/linebuffer.c +++ b/lib/linebuffer.c @@ -35,9 +35,7 @@ void initbuffer (struct linebuffer *linebuffer) { - linebuffer->length = 0; - linebuffer->size = 200; - linebuffer->buffer = xmalloc (linebuffer->size); + memset (linebuffer, 0, sizeof *linebuffer); } /* Read an arbitrarily long line of text from STREAM into LINEBUFFER. @@ -73,9 +71,9 @@ readlinebuffer (struct linebuffer *linebuffer, FILE *stream) } if (p == end) { - linebuffer->size *= 2; - buffer = xrealloc (buffer, linebuffer->size); - p = p - linebuffer->buffer + buffer; + size_t oldsize = linebuffer->size; + buffer = x2realloc (buffer, &linebuffer->size); + p = buffer + oldsize; linebuffer->buffer = buffer; end = buffer + linebuffer->size; } @@ -87,11 +85,10 @@ readlinebuffer (struct linebuffer *linebuffer, FILE *stream) return linebuffer; } -/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */ +/* Free the buffer that was allocated for linebuffer LINEBUFFER. */ void freebuffer (struct linebuffer *linebuffer) { free (linebuffer->buffer); - free (linebuffer); }