aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-20 21:36:14 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-06-22 06:56:47 -0700
commit0843e383b249f9ed9b257767e904f2335b65dfc2 (patch)
tree9cc7818f4b502b1f7fa2790e319bf4bd23079f29
parent624bebd20f76bc637de55e08a6ce309b24ededc5 (diff)
downloadbun-0843e383b249f9ed9b257767e904f2335b65dfc2.tar.gz
bun-0843e383b249f9ed9b257767e904f2335b65dfc2.tar.zst
bun-0843e383b249f9ed9b257767e904f2335b65dfc2.zip
Fix error messages sometimes printing undefined memory
-rw-r--r--src/javascript/jsc/javascript.zig12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index 66d84fddb..e29dc8274 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -1232,7 +1232,7 @@ pub const VirtualMachine = struct {
// }
const main_file_name: string = "bun:main";
- pub threadlocal var errors_stack: [256]*anyopaque = undefined;
+
pub fn fetch(ret: *ErrorableResolvedSource, global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) void {
var log = logger.Log.init(vm.bundler.allocator);
const spec = specifier.slice();
@@ -1309,6 +1309,8 @@ pub const VirtualMachine = struct {
return;
},
else => {
+ var errors_stack: [256]*anyopaque = undefined;
+
var errors = errors_stack[0..@minimum(log.msgs.items.len, errors_stack.len)];
for (log.msgs.items) |msg, i| {
@@ -2202,7 +2204,7 @@ pub const ResolveError = struct {
) js.JSObjectRef {
var resolve_error = allocator.create(ResolveError) catch unreachable;
resolve_error.* = ResolveError{
- .msg = msg,
+ .msg = msg.clone(allocator) catch unreachable,
.allocator = allocator,
.referrer = Fs.Path.init(referrer),
};
@@ -2275,6 +2277,10 @@ pub const ResolveError = struct {
) js.JSValueRef {
return ZigString.init(BuildErrorName).toValue(ctx.ptr()).asRef();
}
+
+ pub fn finalize(this: *ResolveError) void {
+ this.msg.deinit(bun.default_allocator);
+ }
};
pub const BuildError = struct {
@@ -2362,7 +2368,7 @@ pub const BuildError = struct {
) js.JSObjectRef {
var build_error = allocator.create(BuildError) catch unreachable;
build_error.* = BuildError{
- .msg = msg,
+ .msg = msg.clone(allocator) catch unreachable,
// .resolve_result = resolve_result.*,
.allocator = allocator,
};