From cb95ef0b3690e7817db34e3a7c0d7c021a7a8ccf Mon Sep 17 00:00:00 2001 From: Fabrice Date: Mon, 2 Mar 2026 17:56:41 +0100 Subject: fixing mimalloc build --- src/source.cc | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/source.cc') diff --git a/src/source.cc b/src/source.cc index c13fefc..69f1941 100644 --- a/src/source.cc +++ b/src/source.cc @@ -23,6 +23,11 @@ struct Buffer { bool buffer_init(Buffer* buffer, const Allocator* allocator, const String* content_in, const String* file_in) { + assert_neq(buffer, nullptr); + assert_neq(allocator, nullptr); + assert_neq(content_in, nullptr); + assert_neq(file_in, nullptr); + String content, file; bool ret = slice_copy(allocator, content_in, &content); if (unlikely(!ret)) return false; @@ -41,6 +46,8 @@ bool buffer_init(Buffer* buffer, const Allocator* allocator, } void buffer_deinit(Buffer* buffer) { + assert_neq(buffer, nullptr); + slice_deallocate(buffer->allocator, &buffer->file); slice_deallocate(buffer->allocator, &buffer->content); @@ -55,9 +62,26 @@ struct Buffer_Manager { #define buffer_manager_init(allocator) \ Buffer_Manager { nullptr, array_init(Buffer, allocator) } -void buffer_manager_deinit(Buffer_Manager* stack) { - assert(stack != nullptr); - array_deinit(&stack->buffers); +bool buffer_manager_push(Buffer_Manager* manager, Buffer* b) { + assert_neq(manager, nullptr); + assert_neq(b, nullptr); + + bool ret = array_push(&manager->buffers, b); + if(!ret) return false; + + b = array_last(&manager->buffers); + if(manager->stack == nullptr) { + manager->stack = &b->link; + return true; + } + + link_after(manager->stack, &b->link); + return true; +} + +void buffer_manager_deinit(Buffer_Manager* manager) { + assert_neq(manager, nullptr); + array_deinit(&manager->buffers); } #endif -- cgit v1.2.3