|
|
|
@ -23,11 +23,6 @@ struct __bencode_buffer_piece { |
|
|
|
struct __bencode_buffer_piece *next; |
|
|
|
char buf[0]; |
|
|
|
}; |
|
|
|
struct __bencode_free_list { |
|
|
|
void *ptr; |
|
|
|
free_func_t func; |
|
|
|
struct __bencode_free_list *next; |
|
|
|
}; |
|
|
|
struct __bencode_hash { |
|
|
|
struct bencode_item *buckets[BENCODE_HASH_BUCKETS]; |
|
|
|
}; |
|
|
|
@ -100,7 +95,6 @@ int bencode_buffer_init(bencode_buffer_t *buf) { |
|
|
|
buf->pieces = __bencode_piece_new(0); |
|
|
|
if (!buf->pieces) |
|
|
|
return -1; |
|
|
|
buf->free_list = NULL; |
|
|
|
buf->error = 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
@ -141,12 +135,8 @@ alloc: |
|
|
|
} |
|
|
|
|
|
|
|
void bencode_buffer_free(bencode_buffer_t *buf) { |
|
|
|
struct __bencode_free_list *fl; |
|
|
|
struct __bencode_buffer_piece *piece, *next; |
|
|
|
|
|
|
|
for (fl = buf->free_list; fl; fl = fl->next) |
|
|
|
fl->func(fl->ptr); |
|
|
|
|
|
|
|
for (piece = buf->pieces; piece; piece = next) { |
|
|
|
next = piece->next; |
|
|
|
BENCODE_FREE(piece); |
|
|
|
@ -686,20 +676,6 @@ bencode_item_t *bencode_dictionary_get_len(bencode_item_t *dict, const char *key |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
|
|
|
|
void bencode_buffer_destroy_add(bencode_buffer_t *buf, free_func_t func, void *p) { |
|
|
|
struct __bencode_free_list *li; |
|
|
|
|
|
|
|
if (!p) |
|
|
|
return; |
|
|
|
li = bencode_buffer_alloc(buf, sizeof(*li)); |
|
|
|
if (!li) |
|
|
|
return; |
|
|
|
li->ptr = p; |
|
|
|
li->func = func; |
|
|
|
li->next = buf->free_list; |
|
|
|
buf->free_list = li; |
|
|
|
} |
|
|
|
|
|
|
|
static ssize_t __bencode_string(const char *s, ssize_t offset, size_t len) { |
|
|
|
size_t pos; |
|
|
|
unsigned long sl; |
|
|
|
|