Mercurial > hg > nginx-quic
changeset 766:791ea37bc944
ngx_list_create()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Oct 2006 12:47:11 +0000 |
parents | 4cb8f85c085d |
children | cad7543dc419 |
files | src/core/ngx_list.c src/core/ngx_list.h |
diffstat | 2 files changed, 32 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_list.c +++ b/src/core/ngx_list.c @@ -8,7 +8,34 @@ #include <ngx_core.h> -void *ngx_list_push(ngx_list_t *l) +ngx_list_t * +ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size) +{ + ngx_list_t *list; + + list = ngx_palloc(pool, sizeof(ngx_list_t)); + if (list == NULL) { + return NULL; + } + + list->part.elts = ngx_palloc(pool, n * size); + if (list->part.elts == NULL) { + return NULL; + } + + list->part.nelts = 0; + list->part.next = NULL; + list->last = &list->part; + list->size = size; + list->nalloc = n; + list->pool = pool; + + return list; +} + + +void * +ngx_list_push(ngx_list_t *l) { void *elt; ngx_list_part_t *last;
--- a/src/core/ngx_list.h +++ b/src/core/ngx_list.h @@ -30,9 +30,10 @@ typedef struct { } ngx_list_t; -static ngx_inline -ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, - size_t size) +ngx_list_t *ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size); + +static ngx_inline ngx_int_t +ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size) { list->part.elts = ngx_palloc(pool, n * size); if (list->part.elts == NULL) {