|
|
|
@ -11,7 +11,7 @@
|
|
|
|
|
#include "helpers.h"
|
|
|
|
|
|
|
|
|
|
/* set to 0 for alloc debugging, e.g. through valgrind */
|
|
|
|
|
#define BENCODE_MIN_BUFFER_PIECE_LEN 512
|
|
|
|
|
#define BENCODE_MIN_BUFFER_PIECE_LEN 4096
|
|
|
|
|
|
|
|
|
|
#define BENCODE_HASH_BUCKETS 31 /* prime numbers work best */
|
|
|
|
|
|
|
|
|
@ -78,14 +78,14 @@ static void __bencode_list_init(bencode_item_t *list) {
|
|
|
|
|
static struct __bencode_buffer_piece *__bencode_piece_new(size_t size) {
|
|
|
|
|
struct __bencode_buffer_piece *ret;
|
|
|
|
|
|
|
|
|
|
if (size < BENCODE_MIN_BUFFER_PIECE_LEN)
|
|
|
|
|
size = BENCODE_MIN_BUFFER_PIECE_LEN;
|
|
|
|
|
ret = BENCODE_MALLOC(sizeof(*ret) + size + BENCODE_ALLOC_ALIGN);
|
|
|
|
|
size_t alloc_size = size + sizeof(*ret) + BENCODE_ALLOC_ALIGN;
|
|
|
|
|
alloc_size = MAX(alloc_size, BENCODE_MIN_BUFFER_PIECE_LEN);
|
|
|
|
|
ret = BENCODE_MALLOC(alloc_size);
|
|
|
|
|
if (!ret)
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
|
|
ret->tail = ret->buf;
|
|
|
|
|
ret->left = size;
|
|
|
|
|
ret->left = alloc_size - sizeof(*ret) - BENCODE_ALLOC_ALIGN;
|
|
|
|
|
ret->next = NULL;
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|