diff options
author | 2022-03-11 03:09:57 -0800 | |
---|---|---|
committer | 2022-03-11 03:09:57 -0800 | |
commit | 313ad01e4213f0297221fef0c2ba454244b40c55 (patch) | |
tree | 0777573f29507b230ec5e9096c3d6c58934bf62c /src | |
parent | 44b0c8153a7092f97c36c5aab82b692f672c3ddf (diff) | |
download | bun-313ad01e4213f0297221fef0c2ba454244b40c55.tar.gz bun-313ad01e4213f0297221fef0c2ba454244b40c55.tar.zst bun-313ad01e4213f0297221fef0c2ba454244b40c55.zip |
fix bug with freeing typed arrays
Diffstat (limited to 'src')
-rw-r--r-- | src/javascript/jsc/base.zig | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/javascript/jsc/base.zig b/src/javascript/jsc/base.zig index 1acf34bdc..c1ea196e1 100644 --- a/src/javascript/jsc/base.zig +++ b/src/javascript/jsc/base.zig @@ -1829,11 +1829,12 @@ pub const MarkedArrayBuffer = struct { pub const toJS = toJSObjectRef; }; -export fn MarkedArrayBuffer_deallocator(bytes_: *anyopaque, ctx_: *anyopaque) void { - var ctx = @ptrCast(*MarkedArrayBuffer, @alignCast(@alignOf(*MarkedArrayBuffer), ctx_)); - - if (comptime Environment.allow_assert) std.debug.assert(ctx.buffer.ptr == @ptrCast([*]u8, bytes_)); - ctx.destroy(); +export fn MarkedArrayBuffer_deallocator(bytes_: *anyopaque, _: *anyopaque) void { + const mimalloc = @import("../../allocators/mimalloc.zig"); + // zig's memory allocator interface won't work here + // mimalloc knows the size of things + // but we don't + mimalloc.mi_free(bytes_); } pub fn castObj(obj: js.JSObjectRef, comptime Type: type) *Type { |