diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-10-11 12:47:11 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2006-10-11 12:47:11 +0000 |
commit | 35d5272e3a9ac165aaee9e354312b88f8fcbc13d (patch) | |
tree | cd281846a232e846393764df758c7d9c1facbd13 /src/core/ngx_list.c | |
parent | d40ee41c095cd8850fe6e18d9111918a622bcb88 (diff) | |
download | nginx-35d5272e3a9ac165aaee9e354312b88f8fcbc13d.tar.gz nginx-35d5272e3a9ac165aaee9e354312b88f8fcbc13d.zip |
ngx_list_create()
Diffstat (limited to 'src/core/ngx_list.c')
-rw-r--r-- | src/core/ngx_list.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/core/ngx_list.c b/src/core/ngx_list.c index c082afa37..84bc00263 100644 --- 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; |