diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-04-24 10:18:06 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-04-24 10:18:06 +0000 |
commit | bc1ae973daafb5881b65e179d2f5ce891acf22bd (patch) | |
tree | fc844343a2ad8f4660d3cd6e53ce7da5946fa117 /lib/transfer.c | |
parent | 6a35841b2edcbd865e914ec33ea0568199a26a8a (diff) |
Robert Iakobashvili made the 'master_buffer' get allocated first once it is
can/will be used as it then makes the common cases save 16KB of data for each
easy handle that isn't used for pipelining.
Diffstat (limited to 'lib/transfer.c')
-rw-r--r-- | lib/transfer.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 52b4c8966..d007e8814 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -289,8 +289,13 @@ static void read_rewind(struct connectdata *conn, size_t show; show = MIN(conn->buf_len - conn->read_pos, sizeof(buf)-1); - memcpy(buf, conn->master_buffer + conn->read_pos, show); - buf[show] = '\0'; + if (conn->master_buffer) { + memcpy(buf, conn->master_buffer + conn->read_pos, show); + buf[show] = '\0'; + } + else { + buf[0] = '\0'; + } DEBUGF(infof(conn->data, "Buffer after stream rewind (read_pos = %d): [%s]", |