Annotation of embedaddon/nginx/src/core/ngx_array.h, revision 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>