Gotcha... +1 On Sep 8, 2014, at 11:29 AM, Graham Leggett <minf...@sharp.fm> wrote:
> On 08 Sep 2014, at 3:50 PM, Jim Jagielski <j...@jagunet.com> wrote: > >> This is pretty cool... haven't played too much with it, but >> via inspection I like the implementation. >> >> One question: >> >> =================================================================== >> --- server/util_filter.c (revision 1622873) >> +++ server/util_filter.c (working copy) >> @@ -566,6 +566,16 @@ >> { >> if (next) { >> apr_bucket *e; >> + unsigned int activity; >> + int empty = APR_BRIGADE_EMPTY(bb); >> + apr_status_t status; >> ... >> + while (APR_SUCCESS == status && empty) { >> + next = next->next; >> + if (next && next->c->activity == activity) { >> + status = next->frec->filter_func.out_func(next, bb); >> + } >> + else { >> + break; >> + } >> + } >> + >> + return status; >> >> Why does while check for empty? Wouldn't it be faster to >> wrap that while in a 'if (empty)' ? It would safe an >> addition check on a var that doesn't change on each loop >> thru the while(). > > It would - that was originally an if that became a while when I realised we > had to compensate for multiple filters not calling ap_pass_brigade(), instead > of just one. > > The new patch takes out empty completely and instead tracks > c->data_in_output_filters, which could change during the loop. > > Regards, > Graham > — >