Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | #include "fitz.h" |
2 | |||
3 | fz_buffer * |
||
4 | fz_new_buffer(int size) |
||
5 | { |
||
6 | fz_buffer *b; |
||
7 | |||
8 | size = size > 1 ? size : 16; |
||
9 | |||
10 | b = fz_malloc(sizeof(fz_buffer)); |
||
11 | b->refs = 1; |
||
12 | b->data = fz_malloc(size); |
||
13 | b->cap = size; |
||
14 | b->len = 0; |
||
15 | |||
16 | return b; |
||
17 | } |
||
18 | |||
19 | fz_buffer * |
||
20 | fz_keep_buffer(fz_buffer *buf) |
||
21 | { |
||
22 | buf->refs ++; |
||
23 | return buf; |
||
24 | } |
||
25 | |||
26 | void |
||
27 | fz_drop_buffer(fz_buffer *buf) |
||
28 | { |
||
29 | if (--buf->refs == 0) |
||
30 | { |
||
31 | fz_free(buf->data); |
||
32 | fz_free(buf); |
||
33 | } |
||
34 | } |
||
35 | |||
36 | void |
||
37 | fz_resize_buffer(fz_buffer *buf, int size) |
||
38 | { |
||
39 | buf->data = fz_realloc(buf->data, size, 1); |
||
40 | buf->cap = size; |
||
41 | if (buf->len > buf->cap) |
||
42 | buf->len = buf->cap; |
||
43 | } |
||
44 | |||
45 | void |
||
46 | fz_grow_buffer(fz_buffer *buf) |
||
47 | { |
||
48 | fz_resize_buffer(buf, (buf->cap * 3) / 2); |
||
49 | } |