aboutsummaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 3e5c062..58a1e82 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -15,7 +15,7 @@ static const bh_io_table_t bh_buffer_table = {
(bh_off_t (*)(struct bh_io_s *)) bh_buffer_tell_base,
(bh_off_t (*)(struct bh_io_s *)) bh_buffer_available_base,
(void (*)(struct bh_io_s *)) bh_buffer_clear_base,
- (void (*)(struct bh_io_s *)) bh_buffer_destroy
+ (void (*)(struct bh_io_s *)) bh_buffer_destroy_base
};
bh_buffer_t *bh_buffer_new(void)
@@ -34,17 +34,10 @@ bh_buffer_t *bh_buffer_new(void)
return result;
}
-void bh_buffer_free(bh_buffer_t *buffer)
-{
- /* Destroy buffer and free the memory */
- bh_buffer_destroy(buffer);
- free(buffer);
-}
-
int bh_buffer_init(bh_buffer_t *buffer)
{
/* Initialize underlying io object */
- bh_io_init(&buffer->base, &bh_buffer_table);
+ bh_io_init(&buffer->base, &bh_buffer_table, 1);
/* Setup internal information */
buffer->data = NULL;
@@ -56,12 +49,13 @@ int bh_buffer_init(bh_buffer_t *buffer)
return BH_OK;
}
-void bh_buffer_destroy(bh_buffer_t *buffer)
+void bh_buffer_destroy_base(bh_buffer_t *buffer)
{
/* Close the buffer and free allocated memory */
bh_buffer_close(buffer);
if (buffer->data)
free(buffer->data);
+ bh_io_destroy_base(&buffer->base);
}
const char *bh_buffer_data(bh_buffer_t *buffer)