comparison src/core/ngx_array.h @ 0:f0b350454894 NGINX_0_1_0

nginx 0.1.0 *) The first public version.
author Igor Sysoev <http://sysoev.ru>
date Mon, 04 Oct 2004 00:00:00 +0400
parents
children 74b1868dd3cd
comparison
equal deleted inserted replaced
-1:000000000000 0:f0b350454894
1
2 /*
3 * Copyright (C) Igor Sysoev
4 */
5
6
7 #ifndef _NGX_ARRAY_H_INCLUDED_
8 #define _NGX_ARRAY_H_INCLUDED_
9
10
11 #include <ngx_config.h>
12 #include <ngx_core.h>
13
14
15 struct ngx_array_s {
16 void *elts;
17 ngx_uint_t nelts;
18 size_t size;
19 ngx_uint_t nalloc;
20 ngx_pool_t *pool;
21 };
22
23
24 ngx_array_t *ngx_create_array(ngx_pool_t *p, ngx_uint_t n, size_t size);
25 void ngx_destroy_array(ngx_array_t *a);
26 void *ngx_push_array(ngx_array_t *a);
27
28
29 ngx_inline static ngx_int_t ngx_array_init(ngx_array_t *array, ngx_pool_t *pool,
30 ngx_uint_t n, size_t size)
31 {
32 if (!(array->elts = ngx_palloc(pool, n * size))) {
33 return NGX_ERROR;
34 }
35
36 array->nelts = 0;
37 array->size = size;
38 array->nalloc = n;
39 array->pool = pool;
40
41 return NGX_OK;
42 }
43
44
45
46 #define ngx_init_array(a, p, n, s, rc) \
47 ngx_test_null(a.elts, ngx_palloc(p, n * s), rc); \
48 a.nelts = 0; a.size = s; a.nalloc = n; a.pool = p;
49
50 #define ngx_array_create ngx_create_array
51 #define ngx_array_push ngx_push_array
52
53
54 #endif /* _NGX_ARRAY_H_INCLUDED_ */