summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules/ngx_http_log_module.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-02 17:12:09 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-11-02 17:12:09 +0000
commit612ecb7674f631bd6fca1512ad633897df162845 (patch)
tree8cc4e55331b4b05b1b61bba9b7b88787c094225c /src/http/modules/ngx_http_log_module.c
parent7e4f193bb0e1cfa4128052f538dd60519cac02e4 (diff)
downloadnginx-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.c8
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;