aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 22:15:20 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 22:15:20 -0800
commit81a1d8f5896d7f627ec70f9896afe4b17bc4d189 (patch)
tree7a2d85ffb55bdb289dde473f52a959275bffd7bf
parent055f1e963988c77fed47001b7faa6db89a4da418 (diff)
downloadbun-81a1d8f5896d7f627ec70f9896afe4b17bc4d189.tar.gz
bun-81a1d8f5896d7f627ec70f9896afe4b17bc4d189.tar.zst
bun-81a1d8f5896d7f627ec70f9896afe4b17bc4d189.zip
[internal] Add assertion for freeing global strings
-rw-r--r--src/bun.js/bindings/exports.zig9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig
index efa5ab9ef..acc1e136e 100644
--- a/src/bun.js/bindings/exports.zig
+++ b/src/bun.js/bindings/exports.zig
@@ -271,11 +271,12 @@ export fn ZigString__free(raw: [*]const u8, len: usize, allocator_: ?*anyopaque)
}
export fn ZigString__free_global(ptr: [*]const u8, len: usize) void {
- // if (comptime Environment.allow_assert) {
- // std.debug.assert(Mimalloc.mi_check_owned(ptr));
- // }
+ var untagged = @intToPtr(*anyopaque, @ptrToInt(ZigString.init(ptr[0..len]).slice().ptr));
+ if (comptime Environment.allow_assert) {
+ std.debug.assert(Mimalloc.mi_is_in_heap_region(ptr));
+ }
// we must untag the string pointer
- Mimalloc.mi_free(@intToPtr(*anyopaque, @ptrToInt(ZigString.init(ptr[0..len]).slice().ptr)));
+ Mimalloc.mi_free(untagged);
}
export fn Zig__getAPIGlobals(count: *usize) [*]JSC.C.JSClassRef {