]> granicus.if.org Git - libevent/commit
Rewrite evbuffer_expand and its users
authorNick Mathewson <nickm@torproject.org>
Tue, 30 Mar 2010 20:47:37 +0000 (16:47 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 31 Mar 2010 16:53:20 +0000 (12:53 -0400)
commitd5ebcf370debb006964814e0529e73736dcad93b
tree279f6ff0978e624b934501e8a4bc840690cee82a
parent45068a312c0c2c6c4e9a144a837fd2f9d5310840
Rewrite evbuffer_expand and its users

The previous evbuffer_expand was not only incorrect; it was
inefficient too.  On all questions of time vs memory tradeoffs, it
chose to burn time in order to avoid wasting memory.  The new code
tries to be a little more balanced: it only resizes an existing chain
when doing so doesn't require too much copying, and when failing to do
so would waste a lot of the chain's space.

This patch also rewrites evbuffer_chain_insert to work properly with
last_with_datap, and adds a few convenience functions to buffer.c.
buffer.c
test/regress_buffer.c