comparison src/core/ngx_hunk.c @ 1:d220029ac7f3

nginx-0.0.1-2002-08-15-21:20:26 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 15 Aug 2002 17:20:26 +0000
parents 4eff17414a43
children 34a521b1a148
comparison
equal deleted inserted replaced
0:4eff17414a43 1:d220029ac7f3
6 ngx_hunk_t *ngx_get_hunk(ngx_pool_t *pool, int size, int before, int after) 6 ngx_hunk_t *ngx_get_hunk(ngx_pool_t *pool, int size, int before, int after)
7 { 7 {
8 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 8 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
9 9
10 #ifndef OFF_EQUAL_PTR 10 #ifndef OFF_EQUAL_PTR
11 h->pos.f = h->last.f = 0; 11 h->pos.file = h->last.file = 0;
12 #endif 12 #endif
13 13
14 h->pre_start = ngx_palloc(pool, size + before + after); 14 h->pre_start = ngx_palloc(pool, size + before + after);
15 h->start = h->pos.p = h->last.p = h->pre_start + before; 15 h->start = h->pos.mem = h->last.mem = h->pre_start + before;
16 h->end = h->last.p + size; 16 h->end = h->last.mem + size;
17 h->post_end = h->end + after; 17 h->post_end = h->end + after;
18 18
19 h->type = NGX_HUNK_TEMP; 19 h->type = NGX_HUNK_TEMP;
20 h->tag = 0; 20 h->tag = 0;
21 h->fd = (ngx_file_t) -1; 21 h->fd = (ngx_file_t) -1;
26 ngx_hunk_t *ngx_get_hunk_before(ngx_pool_t *pool, ngx_hunk_t *hunk, int size) 26 ngx_hunk_t *ngx_get_hunk_before(ngx_pool_t *pool, ngx_hunk_t *hunk, int size)
27 { 27 {
28 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 28 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
29 29
30 #ifndef OFF_EQUAL_PTR 30 #ifndef OFF_EQUAL_PTR
31 h->pos.f = h->last.f = 0; 31 h->pos.file = h->last.file = 0;
32 #endif 32 #endif
33 33
34 if (hunk->type & NGX_HUNK_TEMP && hunk->pos.p - hunk->pre_start >= size) { 34 if (hunk->type & NGX_HUNK_TEMP && hunk->pos.mem - hunk->pre_start >= size) {
35 /* keep hunk->start unchanged - used in restore */ 35 /* keep hunk->start unchanged - used in restore */
36 h->pre_start = hunk->pre_start; 36 h->pre_start = hunk->pre_start;
37 h->end = h->post_end = hunk->pre_start = hunk->pos.p; 37 h->end = h->post_end = hunk->pre_start = hunk->pos.mem;
38 h->start = h->pos.p = h->last.p = h->end - size; 38 h->start = h->pos.mem = h->last.mem = h->end - size;
39 39
40 h->type = NGX_HUNK_TEMP; 40 h->type = NGX_HUNK_TEMP;
41 h->tag = 0; 41 h->tag = 0;
42 h->fd = (ngx_file_t) -1; 42 h->fd = (ngx_file_t) -1;
43 43
44 } else { 44 } else {
45 h->pre_start = h->start = h->pos.p = h->last.p = ngx_palloc(pool, size); 45 h->pre_start = h->start = h->pos.mem = h->last.mem
46 = ngx_palloc(pool, size);
46 h->end = h->post_end = h->start + size; 47 h->end = h->post_end = h->start + size;
47 48
48 h->type = NGX_HUNK_TEMP; 49 h->type = NGX_HUNK_TEMP;
49 h->tag = 0; 50 h->tag = 0;
50 h->fd = (ngx_file_t) -1; 51 h->fd = (ngx_file_t) -1;
56 ngx_hunk_t *ngx_get_hunk_after(ngx_pool_t *pool, ngx_hunk_t *hunk, int size) 57 ngx_hunk_t *ngx_get_hunk_after(ngx_pool_t *pool, ngx_hunk_t *hunk, int size)
57 { 58 {
58 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 59 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
59 60
60 #ifndef OFF_EQUAL_PTR 61 #ifndef OFF_EQUAL_PTR
61 h->pos.f = h->last.f = 0; 62 h->pos.file = h->last.file = 0;
62 #endif 63 #endif
63 64
64 if (hunk->type & NGX_HUNK_TEMP 65 if (hunk->type & NGX_HUNK_TEMP
65 && hunk->last.p == hunk->end 66 && hunk->last.mem == hunk->end
66 && hunk->post_end - hunk->end >= size) 67 && hunk->post_end - hunk->end >= size)
67 { 68 {
68 h->post_end = hunk->post_end; 69 h->post_end = hunk->post_end;
69 h->pre_start = h->start = h->pos.p = h->last.p = hunk->post_end = 70 h->pre_start = h->start = h->pos.mem = h->last.mem = hunk->post_end =
70 hunk->last.p; 71 hunk->last.mem;
71 h->type = NGX_HUNK_TEMP; 72 h->type = NGX_HUNK_TEMP;
72 h->tag = 0; 73 h->tag = 0;
73 h->fd = (ngx_file_t) -1; 74 h->fd = (ngx_file_t) -1;
74 75
75 } else { 76 } else {
76 h->pre_start = h->start = h->pos.p = h->last.p = ngx_palloc(pool, size); 77 h->pre_start = h->start = h->pos.mem = h->last.mem =
78 ngx_palloc(pool, size);
77 h->end = h->post_end = h->start + size; 79 h->end = h->post_end = h->start + size;
78 80
79 h->type = NGX_HUNK_TEMP; 81 h->type = NGX_HUNK_TEMP;
80 h->tag = 0; 82 h->tag = 0;
81 h->fd = (ngx_file_t) -1; 83 h->fd = (ngx_file_t) -1;