# HG changeset patch # User Igor Sysoev # Date 1243242035 0 # Node ID 13b63d6822285b5ebb0aba5397beaf19c9ae5fa9 # Parent ed741daa010abdeaae2cdbf4cc6f63b5dc6a01bf light optimization of ngx_http_test_content_type() diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -1530,38 +1530,38 @@ ngx_http_core_find_static_location(ngx_h void * ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash) { - u_char c, *p; - ngx_uint_t i, hash; + u_char c, *lowcase; + size_t len; + ngx_uint_t i, hash; if (r->headers_out.content_type.len == 0) { return NULL; } + len = r->headers_out.content_type_len; + if (r->headers_out.content_type_lowcase == NULL) { - p = ngx_pnalloc(r->pool, r->headers_out.content_type_len); - - if (p == NULL) { + lowcase = ngx_pnalloc(r->pool, len); + if (lowcase == NULL) { return NULL; } - r->headers_out.content_type_lowcase = p; + r->headers_out.content_type_lowcase = lowcase; hash = 0; - for (i = 0; i < r->headers_out.content_type_len; i++) { + for (i = 0; i < len; i++) { c = ngx_tolower(r->headers_out.content_type.data[i]); hash = ngx_hash(hash, c); - *p++ = c; + lowcase[i] = c; } r->headers_out.content_type_hash = hash; } - return ngx_hash_find(types_hash, - r->headers_out.content_type_hash, - r->headers_out.content_type_lowcase, - r->headers_out.content_type_len); + return ngx_hash_find(types_hash, r->headers_out.content_type_hash, + r->headers_out.content_type_lowcase, len); }