diff options
| author | Fabrice <fabrice@schaub-dev.xyz> | 2026-03-02 17:56:41 +0100 |
|---|---|---|
| committer | Fabrice <fabrice@schaub-dev.xyz> | 2026-03-02 17:56:41 +0100 |
| commit | cb95ef0b3690e7817db34e3a7c0d7c021a7a8ccf (patch) | |
| tree | 21fff7dd9fccccd6816ee0d10db8f9ed7efda497 /src/source.cc | |
| parent | f8f057a773a6673c99d74e9bfbabf0f1f4c7232a (diff) | |
fixing mimalloc build
Diffstat (limited to 'src/source.cc')
| -rw-r--r-- | src/source.cc | 30 |
1 files changed, 27 insertions, 3 deletions
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 |
