[PATCH 1/4] vcs-svn: eliminate global byte_buffer
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:17
Subsystem:
the rest · Maintainer:
Linus Torvalds
Date: Sun, 10 Oct 2010 21:37:10 -0500 The data stored in byte_buffer[] is always either discarded or written to stdout immediately. No need for it to persist between function calls. Signed-off-by: Jonathan Nieder <redacted> --- For the line_buffer library. Decreases BSS size. Increase stack overhead of two I/O functions by 4096 bytes. Performance effect hasn't been measured. Alas there is no stdio wrapper for sendfile; if there were, we could eliminate the buffer altogether. Of course the goal is to make line_buffer more easily reusable, by eliminating _all_ global state. I assume David would like this but I don't remember if he said so. vcs-svn/line_buffer.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/vcs-svn/line_buffer.c b/vcs-svn/line_buffer.c
index 1543567..f22c94f 100644
--- a/vcs-svn/line_buffer.c
+++ b/vcs-svn/line_buffer.c@@ -14,7 +14,6 @@ obj_pool_gen(blob, char, 4096) static char line_buffer[LINE_BUFFER_LEN]; -static char byte_buffer[COPY_BUFFER_LEN]; static FILE *infile; int buffer_init(const char *filename)
@@ -68,6 +67,7 @@ char *buffer_read_string(uint32_t len) void buffer_copy_bytes(uint32_t len) { + char byte_buffer[COPY_BUFFER_LEN]; uint32_t in; while (len > 0 && !feof(infile) && !ferror(infile)) { in = len < COPY_BUFFER_LEN ? len : COPY_BUFFER_LEN;
@@ -83,6 +83,7 @@ void buffer_copy_bytes(uint32_t len) void buffer_skip_bytes(uint32_t len) { + char byte_buffer[COPY_BUFFER_LEN]; uint32_t in; while (len > 0 && !feof(infile) && !ferror(infile)) { in = len < COPY_BUFFER_LEN ? len : COPY_BUFFER_LEN;
--
1.7.2.3.554.gc9b5c.dirty