aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-03-22 12:34:55 +0100
committerGitHub <noreply@github.com>2024-03-22 12:34:55 +0100
commit63d9bdcde278c262b6365f3abfa964fa578ea4c0 (patch)
tree595eb36274b93d97ec66a6972c5a41880edad66e /src
parent0d2b51eab4892f440db28657bc7b25c41d9cd640 (diff)
parent7ea00cb7418c0816bafe69319fe254ed741a13ff (diff)
Merge pull request #322 from oliverlars/fix-large-file-crash
Switch static arena to growing arena
Diffstat (limited to 'src')
-rw-r--r--src/server/build.odin13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/build.odin b/src/server/build.odin
index 54ec93a..d8a20ac 100644
--- a/src/server/build.odin
+++ b/src/server/build.odin
@@ -12,6 +12,7 @@ import path "core:path/slashpath"
import "core:runtime"
import "core:strings"
import "core:time"
+import mem_virtual "core:mem/virtual"
import "src:common"
@@ -68,16 +69,12 @@ try_build_package :: proc(pkg_name: string) {
return
}
- temp_arena: mem.Arena
-
- mem.arena_init(
- &temp_arena,
- make([]byte, mem.Megabyte * 25, runtime.default_allocator()),
- )
- defer delete(temp_arena.data)
+ temp_arena: mem_virtual.Arena
+ allocator_err := mem_virtual.arena_init_growing(&temp_arena, mem.Megabyte * 16);
+ defer mem_virtual.arena_destroy(&temp_arena)
{
- context.allocator = mem.arena_allocator(&temp_arena)
+ context.allocator = mem_virtual.arena_allocator(&temp_arena)
for fullpath in matches {
if skip_file(filepath.base(fullpath)) {