Mercurial > hg > nginx-quic
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; |