aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2026-01-16 23:12:31 +0100
committerGitHub <noreply@github.com>2026-01-16 23:12:31 +0100
commit93cd45fd5077ae70158102fe7c3a1ead62e262cc (patch)
treeea6e31cfefcf4208c1abf5fb174105cfb640cb40
parent78bd1db13504b3f3431e1d570c3d467afe6b85d1 (diff)
parent5682b3b428b0a55cee9e064885ff92d5807472f9 (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.odin13
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)
}