MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / __bencode_alloc

Function __bencode_alloc

modules/rtpengine/bencode.c:125–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123}
124
125static void *__bencode_alloc(bencode_buffer_t *buf, unsigned int size) {
126 struct __bencode_buffer_piece *piece;
127 void *ret;
128
129 if (!buf)
130 return NULL;
131 if (buf->error)
132 return NULL;
133
134 piece = buf->pieces;
135
136 if (size <= piece->left)
137 goto alloc;
138
139 piece = __bencode_piece_new(size);
140 if (!piece) {
141 buf->error = 1;
142 return NULL;
143 }
144 piece->next = buf->pieces;
145 buf->pieces = piece;
146
147 assert(size <= piece->left);
148
149alloc:
150 piece->left -= size;
151 ret = piece->tail;
152 piece->tail += size;
153 return ret;
154}
155
156void bencode_buffer_free(bencode_buffer_t *buf) {
157 struct __bencode_free_list *fl;

Callers 5

__bencode_item_allocFunction · 0.85
bencode_string_len_dupFunction · 0.85
bencode_iovecFunction · 0.85
bencode_collapseFunction · 0.85

Calls 1

__bencode_piece_newFunction · 0.85

Tested by

no test coverage detected