comparison src/core/ngx_hunk.c @ 67:5a7d1aaa1618

nginx-0.0.1-2003-03-11-23:38:13 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 11 Mar 2003 20:38:13 +0000
parents cd035a94e0b6
children 6127d7075471
comparison
equal deleted inserted replaced
66:4876cd4a36bb 67:5a7d1aaa1618
8 { 8 {
9 ngx_hunk_t *h; 9 ngx_hunk_t *h;
10 10
11 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL); 11 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL);
12 12
13 #if !(HAVE_OFFSET_EQUAL_PTR) 13 ngx_test_null(h->pre_start, ngx_palloc(pool, size + before + after), NULL);
14 h->pos.file = h->last.file = 0;
15 #endif
16 14
17 ngx_test_null(h->pre_start, ngx_palloc(pool, size + before + after), NULL); 15 h->start = h->pos = h->last = h->pre_start + before;
18 h->start = h->pos.mem = h->last.mem = h->pre_start + before; 16 h->file_pos = h->file_last = 0;
19 h->end = h->last.mem + size; 17 h->end = h->last + size;
20 h->post_end = h->end + after; 18 h->post_end = h->end + after;
21 19
22 h->type = NGX_HUNK_TEMP; 20 h->type = NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY;
23 h->tag = 0; 21 h->tag = 0;
24 h->file = NULL; 22 h->file = NULL;
25 23
26 return h; 24 return h;
27 } 25 }
30 { 28 {
31 ngx_hunk_t *h; 29 ngx_hunk_t *h;
32 30
33 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL); 31 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL);
34 32
35 #if !(HAVE_OFFSET_EQUAL_PTR) 33 if (hunk->type & NGX_HUNK_TEMP && hunk->pos - hunk->pre_start >= size) {
36 h->pos.file = h->last.file = 0;
37 #endif
38
39 if (hunk->type & NGX_HUNK_TEMP && hunk->pos.mem - hunk->pre_start >= size) {
40 /* keep hunk->start unchanged - used in restore */ 34 /* keep hunk->start unchanged - used in restore */
41 h->pre_start = hunk->pre_start; 35 h->pre_start = hunk->pre_start;
42 h->end = h->post_end = hunk->pre_start = hunk->pos.mem; 36 h->end = h->post_end = hunk->pre_start = hunk->pos;
43 h->start = h->pos.mem = h->last.mem = h->end - size; 37 h->start = h->pos = h->last = h->end - size;
38 h->file_pos = h->file_last = 0;
44 39
45 h->type = NGX_HUNK_TEMP; 40 h->type = NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY;
46 h->tag = 0; 41 h->tag = 0;
47 h->file = NULL; 42 h->file = NULL;
48 43
49 } else { 44 } else {
50 ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL); 45 ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL);
51 h->start = h->pos.mem = h->last.mem = h->pre_start; 46 h->start = h->pos = h->last = h->pre_start;
52 h->end = h->post_end = h->start + size; 47 h->end = h->post_end = h->start + size;
48 h->file_pos = h->file_last = 0;
53 49
54 h->type = NGX_HUNK_TEMP; 50 h->type = NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY;
55 h->tag = 0; 51 h->tag = 0;
56 h->file = NULL; 52 h->file = NULL;
57 } 53 }
58 54
59 return h; 55 return h;
63 { 59 {
64 ngx_hunk_t *h; 60 ngx_hunk_t *h;
65 61
66 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL); 62 ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL);
67 63
68 #if !(HAVE_OFFSET_EQUAL_PTR)
69 h->pos.file = h->last.file = 0;
70 #endif
71
72 if (hunk->type & NGX_HUNK_TEMP 64 if (hunk->type & NGX_HUNK_TEMP
73 && hunk->last.mem == hunk->end 65 && hunk->last == hunk->end
74 && hunk->post_end - hunk->end >= size) 66 && hunk->post_end - hunk->end >= size)
75 { 67 {
76 h->post_end = hunk->post_end; 68 h->post_end = hunk->post_end;
77 h->pre_start = h->start = h->pos.mem = h->last.mem = hunk->post_end = 69 h->pre_start = h->start = h->pos = h->last = hunk->post_end =
78 hunk->last.mem; 70 hunk->last;
79 h->type = NGX_HUNK_TEMP; 71 h->file_pos = h->file_last = 0;
72
73 h->type = NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY;
80 h->tag = 0; 74 h->tag = 0;
81 h->file = NULL; 75 h->file = NULL;
82 76
83 } else { 77 } else {
84 ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL); 78 ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL);
85 h->start = h->pos.mem = h->last.mem = h->pre_start; 79 h->start = h->pos = h->last = h->pre_start;
86 h->end = h->post_end = h->start + size; 80 h->end = h->post_end = h->start + size;
81 h->file_pos = h->file_last = 0;
87 82
88 h->type = NGX_HUNK_TEMP; 83 h->type = NGX_HUNK_TEMP|NGX_HUNK_IN_MEMORY;
89 h->tag = 0; 84 h->tag = 0;
90 h->file = NULL; 85 h->file = NULL;
91 } 86 }
92 87
93 return h; 88 return h;