aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_array.h
blob: d6443d6a73f6e8ae8bc437a650d6cf990fa4ff27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef _NGX_ARRAY_H_INCLUDED_
#define _NGX_ARRAY_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>


typedef struct {
    void       *elts;
    int         nelts;
    size_t      size;
    int         nalloc;
    ngx_pool_t *pool;
} ngx_array_t;


ngx_array_t *ngx_create_array(ngx_pool_t *p, int n, size_t size);
void ngx_destroy_array(ngx_array_t *a);
void *ngx_push_array(ngx_array_t *a);


#define ngx_init_array(a, p, n, s, rc)                                       \
    ngx_test_null(a.elts, ngx_palloc(p, n * s), rc);                         \
    a.nelts = 0; a.size = s; a.nalloc = n; a.pool = p;


#endif /* _NGX_ARRAY_H_INCLUDED_ */