File Coverage

src/xh_buffer.c
Criterion Covered Total %
statement 0 17 0.0
branch 0 6 0.0
condition n/a
subroutine n/a
pod n/a
total 0 23 0.0


line stmt bran cond sub pod time code
1             #include "xh_config.h"
2             #include "xh_core.h"
3              
4             void
5 0           xh_buffer_init(xh_buffer_t *buf, size_t size)
6             {
7 0           buf->start = buf->cur = malloc(size);
8 0 0         if (buf->start == NULL) {
9 0           croak("Memory allocation error");
10             }
11 0           buf->end = buf->start + size;
12              
13             xh_log_debug2("buf: %p size: %lu", buf->start, size);
14 0           }
15              
16             void
17 0           xh_buffer_grow(xh_buffer_t *buf, size_t inc)
18             {
19             size_t size, use;
20              
21 0 0         if (inc <= (size_t) (buf->end - buf->cur)) {
22 0           return;
23             }
24              
25 0           size = buf->end - buf->start;
26 0           use = buf->cur - buf->start;
27              
28             xh_log_debug2("old buf: %p size: %lu", buf->start, size);
29              
30 0           size += inc < size ? size : inc;
31              
32 0           buf->start = realloc(buf->start, size);
33 0 0         if (buf->start == NULL) {
34 0           croak("Memory allocation error");
35             }
36 0           buf->cur = buf->start + use;
37 0           buf->end = buf->start + size;
38              
39             xh_log_debug2("new buf: %p size: %lu", buf->start, size);
40             }