diff options
Diffstat (limited to 'src/core/ngx_palloc.c')
-rw-r--r-- | src/core/ngx_palloc.c | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/src/core/ngx_palloc.c b/src/core/ngx_palloc.c index eb0e86d0a..1797e96d0 100644 --- a/src/core/ngx_palloc.c +++ b/src/core/ngx_palloc.c @@ -86,7 +86,7 @@ ngx_palloc(ngx_pool_t *pool, size_t size) { u_char *m; ngx_pool_t *p, *n; - ngx_pool_large_t *large, *last; + ngx_pool_large_t *large; if (size <= (size_t) NGX_MAX_ALLOC_FROM_POOL && size <= (size_t) (pool->end - (u_char *) pool) @@ -134,34 +134,6 @@ ngx_palloc(ngx_pool_t *pool, size_t size) return m; } - /* allocate a large block */ - - large = NULL; - last = NULL; - - if (pool->large) { - for (last = pool->large; /* void */ ; last = last->next) { - if (last->alloc == NULL) { - large = last; - last = NULL; - break; - } - - if (last->next == NULL) { - break; - } - } - } - - if (large == NULL) { - large = ngx_palloc(pool, sizeof(ngx_pool_large_t)); - if (large == NULL) { - return NULL; - } - - large->next = NULL; - } - #if 0 p = ngx_memalign(ngx_pagesize, size, pool->log); if (p == NULL) { @@ -174,14 +146,14 @@ ngx_palloc(ngx_pool_t *pool, size_t size) } #endif - if (pool->large == NULL) { - pool->large = large; - - } else if (last) { - last->next = large; + large = ngx_palloc(pool, sizeof(ngx_pool_large_t)); + if (large == NULL) { + return NULL; } large->alloc = p; + large->next = pool->large; + pool->large = large; return p; } |