diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2026-01-16 23:12:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-16 23:12:31 +0100 |
| commit | 93cd45fd5077ae70158102fe7c3a1ead62e262cc (patch) | |
| tree | ea6e31cfefcf4208c1abf5fb174105cfb640cb40 | |
| parent | 78bd1db13504b3f3431e1d570c3d467afe6b85d1 (diff) | |
| parent | 5682b3b428b0a55cee9e064885ff92d5807472f9 (diff) | |
Merge pull request #1251 from mollstam/fix/odinfmt_heap_allocator
Use default heap allocator instead of fixed 50 MB arena for odinfmt
| -rw-r--r-- | tools/odinfmt/main.odin | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/tools/odinfmt/main.odin b/tools/odinfmt/main.odin index 3470ca5..f0ab79b 100644 --- a/tools/odinfmt/main.odin +++ b/tools/odinfmt/main.odin @@ -5,6 +5,7 @@ import "core:flags" import "core:fmt" import "core:io" import "core:mem" +import vmem "core:mem/virtual" import "core:odin/tokenizer" import "core:os" import "core:path/filepath" @@ -44,10 +45,10 @@ walk_files :: proc(info: os.File_Info, in_err: os.Errno, user_data: rawptr) -> ( } main :: proc() { - arena: mem.Arena - mem.arena_init(&arena, make([]byte, 50 * mem.Megabyte)) - - arena_allocator := mem.arena_allocator(&arena) + arena: vmem.Arena + arena_err := vmem.arena_init_growing(&arena) + ensure(arena_err == nil) + arena_allocator := vmem.arena_allocator(&arena) init_global_temporary_allocator(mem.Megabyte * 20) //enough space for the walk @@ -70,7 +71,7 @@ main :: proc() { write_failure := false - watermark := 0 + watermark : uint = 0 config := format.find_config_file_or_default(args.path) @@ -137,7 +138,7 @@ main :: proc() { write_failure = true } - watermark = max(watermark, arena.offset) + watermark = max(watermark, arena.total_used) free_all(arena_allocator) } |