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