Annotation of embedaddon/nginx/src/core/ngx_array.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * Copyright (C) Igor Sysoev
                      4:  * Copyright (C) Nginx, Inc.
                      5:  */
                      6: 
                      7: 
                      8: #ifndef _NGX_ARRAY_H_INCLUDED_
                      9: #define _NGX_ARRAY_H_INCLUDED_
                     10: 
                     11: 
                     12: #include <ngx_config.h>
                     13: #include <ngx_core.h>
                     14: 
                     15: 
                     16: typedef struct {
                     17:     void        *elts;
                     18:     ngx_uint_t   nelts;
                     19:     size_t       size;
                     20:     ngx_uint_t   nalloc;
                     21:     ngx_pool_t  *pool;
                     22: } ngx_array_t;
                     23: 
                     24: 
                     25: ngx_array_t *ngx_array_create(ngx_pool_t *p, ngx_uint_t n, size_t size);
                     26: void ngx_array_destroy(ngx_array_t *a);
                     27: void *ngx_array_push(ngx_array_t *a);
                     28: void *ngx_array_push_n(ngx_array_t *a, ngx_uint_t n);
                     29: 
                     30: 
                     31: static ngx_inline ngx_int_t
                     32: ngx_array_init(ngx_array_t *array, ngx_pool_t *pool, ngx_uint_t n, size_t size)
                     33: {
                     34:     /*
                     35:      * set "array->nelts" before "array->elts", otherwise MSVC thinks
                     36:      * that "array->nelts" may be used without having been initialized
                     37:      */
                     38: 
                     39:     array->nelts = 0;
                     40:     array->size = size;
                     41:     array->nalloc = n;
                     42:     array->pool = pool;
                     43: 
                     44:     array->elts = ngx_palloc(pool, n * size);
                     45:     if (array->elts == NULL) {
                     46:         return NGX_ERROR;
                     47:     }
                     48: 
                     49:     return NGX_OK;
                     50: }
                     51: 
                     52: 
                     53: #endif /* _NGX_ARRAY_H_INCLUDED_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>