From 74933654160064f9303551a6c012be6b88d5b626 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Mon, 2 Mar 2026 12:29:14 +0100 Subject: creating and removing buffer --- src/source.cc | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'src/source.cc') diff --git a/src/source.cc b/src/source.cc index 9234ea9..d714f29 100644 --- a/src/source.cc +++ b/src/source.cc @@ -4,9 +4,46 @@ #include "common.cc" #include "memory.cc" +typedef u32 Source_Id; + +struct Span { + Source_Id id; + usize start, end; + + Span(Source_Id id, usize start, usize end) : id(id), start(start), end(end) {} +}; + struct Buffer { - String content; String file; + String content; + Link link; +}; + +bool buffer_init(Buffer* buffer, const Allocator* allocator, const String* content_in, const String* file_in) { + String content, file; + bool ret = slice_copy(allocator, content_in, &content); + if(unlikely(ret == false)) return false; + + ret = slice_copy(allocator, file_in, &file); + if(unlikely(ret == false)) { + slice_deallocate(allocator, &content); + return false; + } + + buffer->file = file; + buffer->content = content; + buffer->link = {}; + return true; +} + +void buffer_deinit(Buffer* buffer, const Allocator* allocator) { + slice_deallocate(allocator, &buffer->file); + slice_deallocate(allocator, &buffer->content); +} + +struct Buffer_Stack { + Link* buffers; + usize nbuffers; }; #endif -- cgit v1.2.3