Mercurial > hg > nginx
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 } |