]> git.kaiwu.me - nginx.git/commitdiff
light optimization of ngx_http_test_content_type()
authorIgor Sysoev <igor@sysoev.ru>
Mon, 25 May 2009 09:00:35 +0000 (09:00 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 25 May 2009 09:00:35 +0000 (09:00 +0000)
src/http/ngx_http_core_module.c

index 3d146291c09991eea593e60f83a040ec3e0493fa..966cbc27095fe6d44814d47bfcca74659fffa374 100644 (file)
@@ -1530,38 +1530,38 @@ ngx_http_core_find_static_location(ngx_http_request_t *r,
 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;
     }
 
-    if (r->headers_out.content_type_lowcase == NULL) {
+    len = r->headers_out.content_type_len;
 
-        p = ngx_pnalloc(r->pool, r->headers_out.content_type_len);
+    if (r->headers_out.content_type_lowcase == NULL) {
 
-        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);
 }