]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Update from gnulib.
authorJim Meyering <jim@meyering.net>
Fri, 31 Oct 2003 13:47:11 +0000 (13:47 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 31 Oct 2003 13:47:11 +0000 (13:47 +0000)
lib/linebuffer.c

index 434d6d8588638a921e4f5acf8fea1272065b388b..0d35fc0ce3fd1e684cb559b53c055c0e00ce340d 100644 (file)
@@ -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);
 }