diff options
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 14 |
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) |
