Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-09-03 19:50:30 +0400
committerIgor Sysoev <igor@sysoev.ru>2004-09-03 19:50:30 +0400
commitb9e344175f4e971284aa14c8fe685936a4957d52 (patch)
tree3acb14a505668374140f25f711f9b95c9c787335 /src/core/ngx_list.c
parent9e51181229fc00e3dfeb888c008fb02affc48246 (diff)
nginx-0.0.10-2004-09-03-19:50:30 import
Diffstat (limited to 'src/core/ngx_list.c')
-rw-r--r--src/core/ngx_list.c36
1 files changed, 36 insertions, 0 deletions
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 <ngx_config.h>
+#include <ngx_core.h>
+
+
+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;
+}