From c6f6db95ffbbf13a68939f7c3de544b1285e8929 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Jun 2023 21:56:45 -0700 Subject: Ref the strings --- src/bun.js/bindings/bindings.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/bun.js/bindings/bindings.cpp') diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 141215ebe..be3408555 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3303,7 +3303,11 @@ bool JSC__JSValue__stringIncludes(JSC__JSValue value, JSC__JSGlobalObject* globa static void populateStackFrameMetadata(JSC::VM& vm, const JSC::StackFrame* stackFrame, ZigStackFrame* frame) { - frame->source_url = Bun::toString(stackFrame->sourceURL(vm)); + String str = stackFrame->sourceURL(vm); + if (!str.isEmpty()) + str.impl()->ref(); + + frame->source_url = Bun::toString(str); if (stackFrame->isWasmFrame()) { frame->code_type = ZigStackFrameCodeWasm; @@ -3340,7 +3344,10 @@ static void populateStackFrameMetadata(JSC::VM& vm, const JSC::StackFrame* stack JSC::JSObject* callee = JSC::jsCast(calleeCell); - frame->function_name = Bun::toString(JSC::getCalculatedDisplayName(vm, callee)); + String displayName = JSC::getCalculatedDisplayName(vm, callee); + if (!displayName.isEmpty()) + displayName.impl()->ref(); + frame->function_name = Bun::toString(displayName); } // Based on // https://github.com/mceSystems/node-jsc/blob/master/deps/jscshim/src/shim/JSCStackTrace.cpp#L298 -- cgit v1.2.3