# HG changeset patch # User Igor Sysoev # Date 1213996013 0 # Node ID 3ea9a03a1803902cecb28fbc88ecd8a75ee41992 # Parent cca975b532bf6a9d3ff2c85e3e71605f55e98881 fix the previous commit diff --git a/src/core/ngx_palloc.c b/src/core/ngx_palloc.c --- a/src/core/ngx_palloc.c +++ b/src/core/ngx_palloc.c @@ -159,14 +159,19 @@ ngx_palloc_block(ngx_pool_t *pool, size_ psize = (size_t) (pool->d.end - (u_char *) pool); - new = ngx_alloc(size, pool->log); - if (new == NULL) { + m = ngx_alloc(psize, pool->log); + if (m == NULL) { return NULL; } - new->d.end = (u_char *) new + psize; + new = (ngx_pool_t *) m; + + new->d.end = m + psize; new->d.next = NULL; + m += sizeof(ngx_pool_data_t); + new->d.last = m + size; + current = pool->current; for (p = current; p->d.next; p = p->d.next) { @@ -179,9 +184,6 @@ ngx_palloc_block(ngx_pool_t *pool, size_ pool->current = current ? current : new; - m = (u_char *) new + sizeof(ngx_pool_data_t); - new->d.last = m + size; - return m; }