diff options
author | 2022-06-09 05:09:48 -0700 | |
---|---|---|
committer | 2022-06-09 05:09:48 -0700 | |
commit | b8eea5cc4a1f9b6dd1a6a08d531e8e096c60cb5b (patch) | |
tree | 6f8f363e8084add4e6eb311347912b64ed2ad5dc /src/javascript/jsc/bindings/bindings.cpp | |
parent | c88dd2c52c7a48d846b4ee3d9d8e113a0ec9b0b6 (diff) | |
download | bun-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.cpp | 15 |
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)))); |