From bdb1b7124aec3ca42a13dd13309df4c8e4e3cc64 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Tue, 13 Jun 2023 09:15:05 -0700 Subject: Fix crash in CJS (#3294) * Fix crash in CJS * Add std.heap.ArenaAllocator * Use our arena allocator * Reduce JS parser memory usage and make HMR faster * Write some comments * fix test failure & clean up this code * Update javascript.zig * make arena usage safer --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/filesystem_router.zig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/bun.js/api/filesystem_router.zig') diff --git a/src/bun.js/api/filesystem_router.zig b/src/bun.js/api/filesystem_router.zig index d926ca7b3..216f66b7f 100644 --- a/src/bun.js/api/filesystem_router.zig +++ b/src/bun.js/api/filesystem_router.zig @@ -153,7 +153,7 @@ pub const FileSystemRouter = struct { origin: ?*JSC.RefString = null, base_dir: ?*JSC.RefString = null, router: Router, - arena: *std.heap.ArenaAllocator = undefined, + arena: *@import("root").bun.ArenaAllocator = undefined, allocator: std.mem.Allocator = undefined, asset_prefix: ?*JSC.RefString = null, @@ -210,8 +210,8 @@ pub const FileSystemRouter = struct { globalThis.throwInvalidArguments("Expected dir to be a string", .{}); return null; } - var arena = globalThis.allocator().create(std.heap.ArenaAllocator) catch unreachable; - arena.* = std.heap.ArenaAllocator.init(globalThis.allocator()); + var arena = globalThis.allocator().create(@import("root").bun.ArenaAllocator) catch unreachable; + arena.* = @import("root").bun.ArenaAllocator.init(globalThis.allocator()); var allocator = arena.allocator(); var extensions = std.ArrayList(string).init(allocator); if (argument.get(globalThis, "fileExtensions")) |file_extensions| { @@ -324,8 +324,8 @@ pub const FileSystemRouter = struct { pub fn reload(this: *FileSystemRouter, globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { var this_value = callframe.this(); - var arena = globalThis.allocator().create(std.heap.ArenaAllocator) catch unreachable; - arena.* = std.heap.ArenaAllocator.init(globalThis.allocator()); + var arena = globalThis.allocator().create(@import("root").bun.ArenaAllocator) catch unreachable; + arena.* = @import("root").bun.ArenaAllocator.init(globalThis.allocator()); var allocator = arena.allocator(); var vm = globalThis.bunVM(); -- cgit v1.2.3