]> git.kaiwu.me - nginx.git/commitdiff
Core: use ngx_palloc_small() to allocate ngx_pool_large_t.
authorValentin Bartenev <vbart@nginx.com>
Wed, 23 Mar 2016 14:44:04 +0000 (17:44 +0300)
committerValentin Bartenev <vbart@nginx.com>
Wed, 23 Mar 2016 14:44:04 +0000 (17:44 +0300)
This structure cannot be allocated as a large block anyway, otherwise that will
result in infinite recursion, since each large allocation requires to allocate
another ngx_pool_large_t.

The room for the structure is guaranteed by the NGX_MIN_POOL_SIZE constant.

src/core/ngx_palloc.c

index 587a1e587a9bac7692f6e7f4ffe4045843390947..91e7cd71cd21e2600caf213d10be160aabcb160a 100644 (file)
@@ -231,7 +231,7 @@ ngx_palloc_large(ngx_pool_t *pool, size_t size)
         }
     }
 
-    large = ngx_palloc(pool, sizeof(ngx_pool_large_t));
+    large = ngx_palloc_small(pool, sizeof(ngx_pool_large_t), 1);
     if (large == NULL) {
         ngx_free(p);
         return NULL;
@@ -256,7 +256,7 @@ ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment)
         return NULL;
     }
 
-    large = ngx_palloc(pool, sizeof(ngx_pool_large_t));
+    large = ngx_palloc_small(pool, sizeof(ngx_pool_large_t), 1);
     if (large == NULL) {
         ngx_free(p);
         return NULL;