diff --git a/buffer.c b/buffer.c index c311d2829d2b1b27cdb49b2e6fd089c7c72ee46a..f18e0320f89a881914c74bca373d2ef3bcb91a7a 100644 --- a/buffer.c +++ b/buffer.c @@ -54,6 +54,18 @@ nettle_buffer_grow(struct nettle_buffer *buffer, return 1; } +void +nettle_buffer_init_realloc(struct nettle_buffer *buffer, + void *realloc_ctx, + nettle_realloc_func realloc) +{ + buffer->contents = NULL; + buffer->alloc = 0; + buffer->realloc = realloc; + buffer->realloc_ctx = realloc_ctx; + buffer->size = 0; +} + void nettle_buffer_init_size(struct nettle_buffer *buffer, unsigned length, uint8_t *space) diff --git a/buffer.h b/buffer.h index f10f96931ed9a0f7578475aff3e3797b0f7ffed5..050b06ce3c797f8c1c6cabe1764212823aaefd49 100644 --- a/buffer.h +++ b/buffer.h @@ -34,8 +34,8 @@ struct nettle_buffer /* Allocated size */ unsigned alloc; - nettle_realloc_func *realloc; void *realloc_ctx; + nettle_realloc_func *realloc; /* Current size */ unsigned size; @@ -45,6 +45,11 @@ struct nettle_buffer void nettle_buffer_init(struct nettle_buffer *buffer); +void +nettle_buffer_init_realloc(struct nettle_buffer *buffer, + void *realloc_ctx, + nettle_realloc_func realloc); + /* Initializes a buffer of fix size */ void nettle_buffer_init_size(struct nettle_buffer *buffer,