]> granicus.if.org Git - libevent/commit
Correct logic for realigning a chain in evbuffer_add
authorNick Mathewson <nickm@torproject.org>
Tue, 26 Oct 2010 02:36:23 +0000 (22:36 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 26 Oct 2010 02:39:29 +0000 (22:39 -0400)
commite4f34e8a0fec22a0300d6d529a5899ced3d0582a
tree2e08c86a21b6b2361571e8bb5cc35c1da373545f
parent8e342e563060a5dfc4c33bd46a2a6819a5d5b2f7
Correct logic for realigning a chain in evbuffer_add

The old logic was both too eager to realign (it would move a whole
chain to save a byte) and too reluctant to realign (it would only
realign when data would fit into the misaligned portion, without
considering the space at the end of the chain).

The new logic matches that from evbuffer_expand_singlechain: it only
realigns a chain when not much data is to be moved, and there's a
bunch of space to be regained.

Spotted by Yan Lin.
buffer.c