# HG changeset patch # User Maxim Dounin # Date 1346857607 0 # Node ID 3464d0b63300100e1514a9b13cf8b973314c20d3 # Parent 949ea3d3cd1a5146df56a2a5892a898364d95ef6 Write filter: replaced unneeded loop with one to free chains. Noted by Gabor Lekeny. diff --git a/src/http/ngx_http_write_filter_module.c b/src/http/ngx_http_write_filter_module.c --- a/src/http/ngx_http_write_filter_module.c +++ b/src/http/ngx_http_write_filter_module.c @@ -185,18 +185,14 @@ ngx_http_write_filter(ngx_http_request_t } if (size == 0 && !(c->buffered & NGX_LOWLEVEL_BUFFERED)) { - if (last) { - r->out = NULL; - c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; + if (last || flush) { + for (cl = r->out; cl; /* void */) { + ln = cl; + cl = cl->next; + ngx_free_chain(r->pool, ln); + } - return NGX_OK; - } - - if (flush) { - do { - r->out = r->out->next; - } while (r->out); - + r->out = NULL; c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; return NGX_OK;