From 5c0ebb33f4a646919267fbca11c36eba24003561 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 26 Mar 2010 14:50:45 -0400 Subject: [PATCH] Do not use evbuffer_expand() to add the first chain to a buffer (It's a big function, and using it this way is overkill.) --- buffer.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/buffer.c b/buffer.c index 731a0064..06974bad 100644 --- a/buffer.c +++ b/buffer.c @@ -1310,9 +1310,10 @@ evbuffer_add(struct evbuffer *buf, const void *data_in, size_t datlen) /* If there are no chains allocated for this buffer, allocate one * big enough to hold all the data. */ if (chain == NULL) { - if (evbuffer_expand(buf, datlen) == -1) + chain = evbuffer_chain_new(datlen); + if (!chain) goto done; - chain = buf->last; + evbuffer_chain_insert(buf, chain); } if ((chain->flags & EVBUFFER_IMMUTABLE) == 0) { @@ -1389,10 +1390,10 @@ evbuffer_prepend(struct evbuffer *buf, const void *data, size_t datlen) chain = buf->first; if (chain == NULL) { - if (evbuffer_expand(buf, datlen) == -1) + chain = evbuffer_chain_new(datlen); + if (!chain) goto done; - chain = buf->first; - chain->misalign = chain->buffer_len; + evbuffer_chain_insert(buf, chain); } /* we cannot touch immutable buffers */