]> git.kaiwu.me - nginx.git/commitdiff
ngx_list_create()
authorIgor Sysoev <igor@sysoev.ru>
Wed, 11 Oct 2006 12:47:11 +0000 (12:47 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 11 Oct 2006 12:47:11 +0000 (12:47 +0000)
src/core/ngx_list.c
src/core/ngx_list.h

index c082afa374a61f9b35014d307f45384d6fd0862c..84bc0026306498352afcb88b868bcf5819a811c2 100644 (file)
@@ -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;
index c030cf293f6756cfb8cb974e1024490488d8998f..75db868868669bab570d169b81908449d7d79a35 100644 (file)
@@ -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) {