From: Willy Tarreau Date: Mon, 9 Jul 2018 09:39:49 +0000 (+0200) Subject: MINOR: buffer: remove the check for output on b_del() X-Git-Tag: v1.9-dev1~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abed1e7f34aafa75c89f6ff3d2eecce29f800db0;p=thirdparty%2Fhaproxy.git MINOR: buffer: remove the check for output on b_del() b_del() is used in : - mux_h2 with the demux buffer : always processes input data - checks with output data though output is not considered at all there - b_eat() which is not used anywhere - co_skip() where the len is always <= output Thus the distinction for output data is not needed anymore and the decrement can be made inconditionally in co_skip(). --- diff --git a/include/common/buf.h b/include/common/buf.h index 02a66b3666..6eec422929 100644 --- a/include/common/buf.h +++ b/include/common/buf.h @@ -396,10 +396,6 @@ static inline void b_set_data(struct buffer *b, size_t len) */ static inline void b_del(struct buffer *b, size_t del) { - if (del >= b->output) - b->output = 0; - else - b->output -= del; b->len -= del; b->head += del; if (b->head >= b->size) diff --git a/include/proto/channel.h b/include/proto/channel.h index 291bb08f88..6241237996 100644 --- a/include/proto/channel.h +++ b/include/proto/channel.h @@ -767,6 +767,7 @@ static inline void channel_slow_realign(struct channel *chn, char *swap) static inline void co_skip(struct channel *chn, int len) { b_del(chn->buf, len); + chn->buf->output -= len; c_realign_if_empty(chn); /* notify that some data was written to the SI from the buffer */