diff --git a/buffer.c b/buffer.c index be9c7ec9..c748dab2 100644 --- a/buffer.c +++ b/buffer.c @@ -333,6 +333,7 @@ evbuffer_run_callbacks(struct evbuffer *buffer, int running_deferred) struct evbuffer_cb_info info; size_t new_size; uint32_t mask, masked_val; + int clear = 1; if (running_deferred) { mask = EVBUFFER_CB_NODEFER|EVBUFFER_CB_ENABLED; @@ -340,6 +341,8 @@ evbuffer_run_callbacks(struct evbuffer *buffer, int running_deferred) } else if (buffer->deferred_cbs) { mask = EVBUFFER_CB_NODEFER|EVBUFFER_CB_ENABLED; masked_val = EVBUFFER_CB_NODEFER|EVBUFFER_CB_ENABLED; +/* Don't zero-out n_add/n_del, since */ + clear = 0; } else { mask = EVBUFFER_CB_ENABLED; masked_val = EVBUFFER_CB_ENABLED; diff --git a/evbuffer-internal.h b/evbuffer-internal.h index 7e08ee9b..99dde3ce 100644 --- a/evbuffer-internal.h +++ b/evbuffer-internal.h @@ -36,6 +36,9 @@ extern "C" { #include "util-internal.h" #include "defer-internal.h" +/* Experimental cb flag: "never deferred" */ +#define EVBUFFER_CB_NODEFER 2 + #ifdef WIN32 #include #endif @@ -59,11 +62,6 @@ struct evbuffer_cb_entry { void *cbarg; /** Currently set flags on this callback. */ ev_uint32_t flags; -#if 0 - /** Size of the evbuffer before this callback was suspended, or 0 - if this callback is not suspended. */ - size_t size_before_suspend; -#endif }; struct bufferevent; diff --git a/include/event2/buffer.h b/include/event2/buffer.h index 0fb6dffd..2a8e8378 100644 --- a/include/event2/buffer.h +++ b/include/event2/buffer.h @@ -610,9 +610,6 @@ int evbuffer_remove_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg * should not be invoked. */ #define EVBUFFER_CB_ENABLED 1 -/* Experimental cb flag: "never deferred" */ -#define EVBUFFER_CB_NODEFER 2 - /** Change the flags that are set for a callback on a buffer by adding more. @param buffer the evbuffer that the callback is watching.