Mercurial > hg > nginx
comparison src/http/ngx_http_write_filter_module.c @ 4833:3464d0b63300
Write filter: replaced unneeded loop with one to free chains.
Noted by Gabor Lekeny.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 05 Sep 2012 15:06:47 +0000 |
parents | d620f497c50f |
children | ed576bd1d9c0 |
comparison
equal
deleted
inserted
replaced
4832:949ea3d3cd1a | 4833:3464d0b63300 |
---|---|
183 c->buffered |= NGX_HTTP_WRITE_BUFFERED; | 183 c->buffered |= NGX_HTTP_WRITE_BUFFERED; |
184 return NGX_AGAIN; | 184 return NGX_AGAIN; |
185 } | 185 } |
186 | 186 |
187 if (size == 0 && !(c->buffered & NGX_LOWLEVEL_BUFFERED)) { | 187 if (size == 0 && !(c->buffered & NGX_LOWLEVEL_BUFFERED)) { |
188 if (last) { | 188 if (last || flush) { |
189 for (cl = r->out; cl; /* void */) { | |
190 ln = cl; | |
191 cl = cl->next; | |
192 ngx_free_chain(r->pool, ln); | |
193 } | |
194 | |
189 r->out = NULL; | 195 r->out = NULL; |
190 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; | |
191 | |
192 return NGX_OK; | |
193 } | |
194 | |
195 if (flush) { | |
196 do { | |
197 r->out = r->out->next; | |
198 } while (r->out); | |
199 | |
200 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; | 196 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; |
201 | 197 |
202 return NGX_OK; | 198 return NGX_OK; |
203 } | 199 } |
204 | 200 |