stage1: memory/report overhaul
- split util_base.hpp from util.hpp - new namespaces: `mem` and `heap` - new `mem::Allocator` interface - new `heap::CAllocator` impl with global `heap::c_allocator` - new `heap::ArenaAllocator` impl - new `mem::TypeInfo` extracts names without RTTI - name extraction is enabled w/ ZIG_ENABLE_MEM_PROFILE=1 - new `mem::List` takes explicit `Allocator&` parameter - new `mem::HashMap` takes explicit `Allocator&` parameter - add Codegen.pass1_arena and use for all `ZigValue` allocs - deinit Codegen.pass1_arena early in `zig_llvm_emit_output()`
This commit is contained in:
@@ -397,10 +397,10 @@ static void invalid_char_error(Tokenize *t, uint8_t c) {
|
||||
void tokenize(Buf *buf, Tokenization *out) {
|
||||
Tokenize t = {0};
|
||||
t.out = out;
|
||||
t.tokens = out->tokens = allocate<ZigList<Token>>(1);
|
||||
t.tokens = out->tokens = heap::c_allocator.create<ZigList<Token>>();
|
||||
t.buf = buf;
|
||||
|
||||
out->line_offsets = allocate<ZigList<size_t>>(1);
|
||||
out->line_offsets = heap::c_allocator.create<ZigList<size_t>>();
|
||||
out->line_offsets->append(0);
|
||||
|
||||
// Skip the UTF-8 BOM if present
|
||||
|
||||
Reference in New Issue
Block a user