aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/bindings.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-09 05:09:48 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-09 05:09:48 -0700
commitb8eea5cc4a1f9b6dd1a6a08d531e8e096c60cb5b (patch)
tree6f8f363e8084add4e6eb311347912b64ed2ad5dc /src/javascript/jsc/bindings/bindings.cpp
parentc88dd2c52c7a48d846b4ee3d9d8e113a0ec9b0b6 (diff)
downloadbun-b8eea5cc4a1f9b6dd1a6a08d531e8e096c60cb5b.tar.gz
bun-b8eea5cc4a1f9b6dd1a6a08d531e8e096c60cb5b.tar.zst
bun-b8eea5cc4a1f9b6dd1a6a08d531e8e096c60cb5b.zip
fix some memory leaks with strings
Diffstat (limited to 'src/javascript/jsc/bindings/bindings.cpp')
-rw-r--r--src/javascript/jsc/bindings/bindings.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/javascript/jsc/bindings/bindings.cpp b/src/javascript/jsc/bindings/bindings.cpp
index f289f40c9..a8770005a 100644
--- a/src/javascript/jsc/bindings/bindings.cpp
+++ b/src/javascript/jsc/bindings/bindings.cpp
@@ -1078,18 +1078,9 @@ JSC__JSValue ZigString__to16BitValue(const ZigString* arg0, JSC__JSGlobalObject*
return JSC::JSValue::encode(JSC::JSValue(JSC::jsString(arg1->vm(), str)));
}
-static void free_global_string(void* str, void* ptr, unsigned len)
-{
- // i don't understand why this happens
- if (ptr == nullptr)
- return;
-
- ZigString__free_global(reinterpret_cast<const unsigned char*>(ptr), len);
-}
-
JSC__JSValue ZigString__toExternalU16(const uint16_t* arg0, size_t len, JSC__JSGlobalObject* global)
{
- auto ref = String(ExternalStringImpl::create(reinterpret_cast<const UChar*>(arg0), len, nullptr, free_global_string));
+ auto ref = String(ExternalStringImpl::create(reinterpret_cast<const UChar*>(arg0), len, reinterpret_cast<void*>(const_cast<uint16_t*>(arg0)), free_global_string));
return JSC::JSValue::encode(JSC::JSValue(JSC::jsString(
global->vm(), WTFMove(ref))));
@@ -1099,12 +1090,12 @@ JSC__JSValue ZigString__toExternalValue(const ZigString* arg0, JSC__JSGlobalObje
{
ZigString str = *arg0;
if (Zig::isTaggedUTF16Ptr(str.ptr)) {
- auto ref = String(ExternalStringImpl::create(reinterpret_cast<const UChar*>(Zig::untag(str.ptr)), str.len, nullptr, free_global_string));
+ auto ref = String(ExternalStringImpl::create(reinterpret_cast<const UChar*>(Zig::untag(str.ptr)), str.len, Zig::untagVoid(str.ptr), free_global_string));
return JSC::JSValue::encode(JSC::JSValue(JSC::jsString(
arg1->vm(), WTFMove(ref))));
} else {
- auto ref = String(ExternalStringImpl::create(Zig::untag(str.ptr), str.len, nullptr, free_global_string));
+ auto ref = String(ExternalStringImpl::create(Zig::untag(str.ptr), str.len, Zig::untagVoid(str.ptr), free_global_string));
return JSC::JSValue::encode(JSC::JSValue(JSC::jsString(
arg1->vm(),
WTFMove(ref))));