<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">hello. everybody here?</font></font><!--<![endif]--><div><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><br></font></font></div><div><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">example before:</font></font></div><div><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; line-height: 19px; white-space: pre;"><div>    <span style="color: #c586c0;">for</span> (p = pool; p; p = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span>) {</div><div>        <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">last</span> = (<span style="color: #569cd6;">u_char</span> *) p + <span style="color: #569cd6;">sizeof</span>(<span style="color: #4ec9b0;">ngx_pool_t</span>);</div><div>        <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">failed</span> = <span style="color: #b5cea8;">0</span>;</div><div>    }</div></div></font></font></div><div><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><br></font></font></div><div>after:</div><div><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; line-height: 19px; white-space: pre;"><div>    <span style="color: #c586c0;">for</span> (p = &<span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">d</span>; p; p = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">next</span>) {</div><div>        <span style="color: #c586c0;">if</span> (p == &<span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">d</span>) {</div><div>            <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">last</span> = (<span style="color: #569cd6;">u_char</span> *) p + <span style="color: #569cd6;">sizeof</span>(<span style="color: #4ec9b0;">ngx_pool_t</span>);</div><div>        } <span style="color: #c586c0;">else</span> {</div><div>            <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">last</span> = (<span style="color: #569cd6;">u_char</span> *) p + <span style="color: #569cd6;">sizeof</span>(<span style="color: #4ec9b0;">ngx_pool_data_t</span>);</div><div>        }</div><div>        <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">failed</span> = <span style="color: #b5cea8;">0</span>;</div><div>    }</div></div></div><div><br></div><div>example2 before:</div><div><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; line-height: 19px; white-space: pre;"><div><span style="color: #569cd6;">static</span> <span style="color: #569cd6;">void</span> *</div><div><span style="color: #dcdcaa;">ngx_palloc_block</span>(<span style="color: #4ec9b0;">ngx_pool_t</span> *<span style="color: #9cdcfe;">pool</span>, <span style="color: #569cd6;">size_t</span> <span style="color: #9cdcfe;">size</span>)</div><div>{</div><div>    <span style="color: #569cd6;">u_char</span>      *m;</div><div>    <span style="color: #569cd6;">size_t</span>       psize;</div><div>    <span style="color: #4ec9b0;">ngx_pool_t</span>  *p, *new;</div><br><div>    psize = (<span style="color: #569cd6;">size_t</span>) (<span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">end</span> - (<span style="color: #569cd6;">u_char</span> *) pool);</div><br><div>    m = <span style="color: #dcdcaa;">ngx_memalign</span>(NGX_POOL_ALIGNMENT, psize, <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">log</span>);</div><div>    <span style="color: #c586c0;">if</span> (m == <span style="color: #569cd6;">NULL</span>) {</div><div>        <span style="color: #c586c0;">return</span> <span style="color: #569cd6;">NULL</span>;</div><div>    }</div><br><div>    new = (<span style="color: #4ec9b0;">ngx_pool_t</span> *) m;</div><br><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">end</span> = m + psize;</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span> = <span style="color: #569cd6;">NULL</span>;</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">failed</span> = <span style="color: #b5cea8;">0</span>;</div><br><div>    m += <span style="color: #569cd6;">sizeof</span>(<span style="color: #4ec9b0;">ngx_pool_data_t</span>);</div><div>    m = <span style="color: #dcdcaa;">ngx_align_ptr</span>(m, NGX_ALIGNMENT);</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">last</span> = m + size;</div><br><div>    <span style="color: #c586c0;">for</span> (p = <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">current</span>; <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span>; p = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span>) {</div><div>        <span style="color: #c586c0;">if</span> (<span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">failed</span>++ > <span style="color: #b5cea8;">4</span>) {</div><div>            <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">current</span> = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span>;</div><div>        }</div><div>    }</div><br><div>    <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">next</span> = new;</div><br><div>    <span style="color: #c586c0;">return</span> m;</div><div>}</div></div></div><div>after:</div><div><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; line-height: 19px; white-space: pre;"><div><span style="color: #569cd6;">static</span> <span style="color: #569cd6;">void</span> *</div><div><span style="color: #dcdcaa;">ngx_palloc_block</span>(<span style="color: #4ec9b0;">ngx_pool_t</span> *<span style="color: #9cdcfe;">pool</span>, <span style="color: #569cd6;">size_t</span> <span style="color: #9cdcfe;">size</span>)</div><div>{</div><div>    <span style="color: #569cd6;">u_char</span>           *m;</div><div>    <span style="color: #569cd6;">size_t</span>            psize;</div><div>    <span style="color: #4ec9b0;">ngx_pool_data_t</span>  *p, *new;</div><br><div>    psize = (<span style="color: #569cd6;">size_t</span>) (<span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">d</span>.<span style="color: #9cdcfe;">end</span> - (<span style="color: #569cd6;">u_char</span> *) pool);</div><br><div>    m = <span style="color: #dcdcaa;">ngx_memalign</span>(NGX_POOL_ALIGNMENT, psize, <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">log</span>);</div><div>    <span style="color: #c586c0;">if</span> (m == <span style="color: #569cd6;">NULL</span>) {</div><div>        <span style="color: #c586c0;">return</span> <span style="color: #569cd6;">NULL</span>;</div><div>    }</div><br><div>    new = (<span style="color: #4ec9b0;">ngx_pool_data_t</span> *) m;</div><br><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">end</span> = m + psize;</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">next</span> = <span style="color: #569cd6;">NULL</span>;</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">failed</span> = <span style="color: #b5cea8;">0</span>;</div><br><div>    m += <span style="color: #569cd6;">sizeof</span>(<span style="color: #4ec9b0;">ngx_pool_data_t</span>);</div><div>    m = <span style="color: #dcdcaa;">ngx_align_ptr</span>(m, NGX_ALIGNMENT);</div><div>    <span style="color: #9cdcfe;">new</span>-><span style="color: #9cdcfe;">last</span> = m + size;</div><br><div>    <span style="color: #c586c0;">for</span> (p = <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">current</span>; <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">next</span>; p = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">next</span>) {</div><div>        <span style="color: #c586c0;">if</span> (<span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">failed</span>++ > <span style="color: #b5cea8;">4</span>) {</div><div>            <span style="color: #9cdcfe;">pool</span>-><span style="color: #9cdcfe;">current</span> = <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">next</span>;</div><div>        }</div><div>    }</div><br><div>    <span style="color: #9cdcfe;">p</span>-><span style="color: #9cdcfe;">next</span> = new;</div><br><div>    <span style="color: #c586c0;">return</span> m;</div><div>}</div></div></div>