comparison src/core/ngx_array.c @ 92:19cc647ecd91

nginx-0.0.1-2003-05-20-19:37:55 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 20 May 2003 15:37:55 +0000
parents 0e81ac0bb3e2
children 7ebc8b7fb816
comparison
equal deleted inserted replaced
91:637625a2acdb 92:19cc647ecd91
27 { 27 {
28 ngx_pool_t *p; 28 ngx_pool_t *p;
29 29
30 p = a->pool; 30 p = a->pool;
31 31
32 if (a->elts + a->size * a->nalloc == p->last) { 32 if ((char *) a->elts + a->size * a->nalloc == p->last) {
33 p->last -= a->size * a->nalloc; 33 p->last -= a->size * a->nalloc;
34 } 34 }
35 35
36 if ((char *) a + sizeof(ngx_array_t) == p->last) { 36 if ((char *) a + sizeof(ngx_array_t) == p->last) {
37 p->last = (char *) a; 37 p->last = (char *) a;
47 /* array is full */ 47 /* array is full */
48 if (a->nelts == a->nalloc) { 48 if (a->nelts == a->nalloc) {
49 p = a->pool; 49 p = a->pool;
50 50
51 /* array allocation is the last in the pool */ 51 /* array allocation is the last in the pool */
52 if (a->elts + a->size * a->nelts == p->last 52 if ((char *) a->elts + a->size * a->nelts == p->last
53 && (unsigned) (p->end - p->last) >= a->size) 53 && (unsigned) (p->end - p->last) >= a->size)
54 { 54 {
55 p->last += a->size; 55 p->last += a->size;
56 a->nalloc++; 56 a->nalloc++;
57 57
63 a->elts = new; 63 a->elts = new;
64 a->nalloc *= 2; 64 a->nalloc *= 2;
65 } 65 }
66 } 66 }
67 67
68 elt = a->elts + a->size * a->nelts; 68 elt = (char *) a->elts + a->size * a->nelts;
69 a->nelts++; 69 a->nelts++;
70 70
71 return elt; 71 return elt;
72 } 72 }