From b9e344175f4e971284aa14c8fe685936a4957d52 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 3 Sep 2004 15:50:30 +0000 Subject: nginx-0.0.10-2004-09-03-19:50:30 import --- src/core/ngx_list.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/core/ngx_list.c (limited to 'src/core/ngx_list.c') diff --git a/src/core/ngx_list.c b/src/core/ngx_list.c new file mode 100644 index 000000000..10d79575f --- /dev/null +++ b/src/core/ngx_list.c @@ -0,0 +1,36 @@ + +#include +#include + + +void *ngx_push_list(ngx_list_t *l) +{ + void *elt; + ngx_list_part_t *last; + + last = l->last; + + if (last->nelts == l->nalloc) { + + /* the last part is full, allocate a new list part */ + + if (!(last = ngx_palloc(l->pool, sizeof(ngx_list_part_t)))) { + return NULL; + } + + if (!(last->elts = ngx_palloc(l->pool, l->nalloc * l->size))) { + return NULL; + } + + last->nelts = 0; + last->next = NULL; + + l->last->next = last; + l->last = last; + } + + elt = (char *) last->elts + l->size * last->nelts; + last->nelts++; + + return elt; +} -- cgit v1.2.3