Lines Matching refs:buffer

21 	sldns_buffer *buffer = (sldns_buffer*)malloc(sizeof(sldns_buffer));  in sldns_buffer_new()  local
23 if (!buffer) { in sldns_buffer_new()
27 buffer->_data = (uint8_t *) malloc(capacity); in sldns_buffer_new()
28 if (!buffer->_data) { in sldns_buffer_new()
29 free(buffer); in sldns_buffer_new()
33 buffer->_position = 0; in sldns_buffer_new()
34 buffer->_limit = buffer->_capacity = capacity; in sldns_buffer_new()
35 buffer->_fixed = 0; in sldns_buffer_new()
36 buffer->_status_err = 0; in sldns_buffer_new()
38 sldns_buffer_invariant(buffer); in sldns_buffer_new()
40 return buffer; in sldns_buffer_new()
44 sldns_buffer_new_frm_data(sldns_buffer *buffer, void *data, size_t size) in sldns_buffer_new_frm_data() argument
48 buffer->_position = 0; in sldns_buffer_new_frm_data()
49 buffer->_limit = buffer->_capacity = size; in sldns_buffer_new_frm_data()
50 buffer->_fixed = 0; in sldns_buffer_new_frm_data()
51 if (!buffer->_fixed && buffer->_data) in sldns_buffer_new_frm_data()
52 free(buffer->_data); in sldns_buffer_new_frm_data()
53 buffer->_data = malloc(size); in sldns_buffer_new_frm_data()
54 if(!buffer->_data) { in sldns_buffer_new_frm_data()
55 buffer->_status_err = 1; in sldns_buffer_new_frm_data()
58 memcpy(buffer->_data, data, size); in sldns_buffer_new_frm_data()
59 buffer->_status_err = 0; in sldns_buffer_new_frm_data()
61 sldns_buffer_invariant(buffer); in sldns_buffer_new_frm_data()
65 sldns_buffer_init_frm_data(sldns_buffer *buffer, void *data, size_t size) in sldns_buffer_init_frm_data() argument
67 memset(buffer, 0, sizeof(*buffer)); in sldns_buffer_init_frm_data()
68 buffer->_data = data; in sldns_buffer_init_frm_data()
69 buffer->_capacity = buffer->_limit = size; in sldns_buffer_init_frm_data()
70 buffer->_fixed = 1; in sldns_buffer_init_frm_data()
74 sldns_buffer_set_capacity(sldns_buffer *buffer, size_t capacity) in sldns_buffer_set_capacity() argument
78 sldns_buffer_invariant(buffer); in sldns_buffer_set_capacity()
79 assert(buffer->_position <= capacity && !buffer->_fixed); in sldns_buffer_set_capacity()
81 data = (uint8_t *) realloc(buffer->_data, capacity); in sldns_buffer_set_capacity()
83 buffer->_status_err = 1; in sldns_buffer_set_capacity()
86 buffer->_data = data; in sldns_buffer_set_capacity()
87 buffer->_limit = buffer->_capacity = capacity; in sldns_buffer_set_capacity()
93 sldns_buffer_reserve(sldns_buffer *buffer, size_t amount) in sldns_buffer_reserve() argument
95 sldns_buffer_invariant(buffer); in sldns_buffer_reserve()
96 assert(!buffer->_fixed); in sldns_buffer_reserve()
97 if (buffer->_capacity < buffer->_position + amount) { in sldns_buffer_reserve()
98 size_t new_capacity = buffer->_capacity * 3 / 2; in sldns_buffer_reserve()
100 if (new_capacity < buffer->_position + amount) { in sldns_buffer_reserve()
101 new_capacity = buffer->_position + amount; in sldns_buffer_reserve()
103 if (!sldns_buffer_set_capacity(buffer, new_capacity)) { in sldns_buffer_reserve()
104 buffer->_status_err = 1; in sldns_buffer_reserve()
108 buffer->_limit = buffer->_capacity; in sldns_buffer_reserve()
113 sldns_buffer_printf(sldns_buffer *buffer, const char *format, ...) in sldns_buffer_printf() argument
119 if (sldns_buffer_status_ok(buffer)) { in sldns_buffer_printf()
120 sldns_buffer_invariant(buffer); in sldns_buffer_printf()
121 assert(buffer->_limit == buffer->_capacity); in sldns_buffer_printf()
123 remaining = sldns_buffer_remaining(buffer); in sldns_buffer_printf()
125 written = vsnprintf((char *) sldns_buffer_current(buffer), remaining, in sldns_buffer_printf()
129 buffer->_status_err = 1; in sldns_buffer_printf()
132 buffer->_position += written; in sldns_buffer_printf()
138 sldns_buffer_free(sldns_buffer *buffer) in sldns_buffer_free() argument
140 if (!buffer) { in sldns_buffer_free()
144 if (!buffer->_fixed) in sldns_buffer_free()
145 free(buffer->_data); in sldns_buffer_free()
147 free(buffer); in sldns_buffer_free()