diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-11-02 17:12:09 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-11-02 17:12:09 +0000 |
| commit | 612ecb7674f631bd6fca1512ad633897df162845 (patch) | |
| tree | 8cc4e55331b4b05b1b61bba9b7b88787c094225c /src/http/modules/ngx_http_log_module.c | |
| parent | 7e4f193bb0e1cfa4128052f538dd60519cac02e4 (diff) | |
| download | nginx-612ecb7674f631bd6fca1512ad633897df162845.tar.gz nginx-612ecb7674f631bd6fca1512ad633897df162845.tar.bz2 | |
optimize some cycles:
*) delete surplus variable;
*) on i386/amd64 "while (n) / n--" is smaller than "while (n--)",
because the platforms have no postfix operations
Diffstat (limited to 'src/http/modules/ngx_http_log_module.c')
| -rw-r--r-- | src/http/modules/ngx_http_log_module.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c index e1d99c05a..4ea7682f5 100644 --- a/src/http/modules/ngx_http_log_module.c +++ b/src/http/modules/ngx_http_log_module.c @@ -650,7 +650,7 @@ ngx_http_log_variable(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) static uintptr_t ngx_http_log_escape(u_char *dst, u_char *src, size_t size) { - ngx_uint_t i, n; + ngx_uint_t n; static u_char hex[] = "0123456789ABCDEF"; static uint32_t escape[] = { @@ -678,17 +678,18 @@ ngx_http_log_escape(u_char *dst, u_char *src, size_t size) n = 0; - for (i = 0; i < size; i++) { + while (size) { if (escape[*src >> 5] & (1 << (*src & 0x1f))) { n++; } src++; + size--; } return (uintptr_t) n; } - for (i = 0; i < size; i++) { + while (size) { if (escape[*src >> 5] & (1 << (*src & 0x1f))) { *dst++ = '\\'; *dst++ = 'x'; @@ -699,6 +700,7 @@ ngx_http_log_escape(u_char *dst, u_char *src, size_t size) } else { *dst++ = *src++; } + size--; } return (uintptr_t) dst; |
