From 7b708255f5364175713cbe3b72634718aaec056f Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 12 Jul 2022 00:20:29 -0700 Subject: [jsc] Fix segfault with promises --- src/bun.js/bindings/bindings.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src') diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 1d4c2b171..443edd873 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -89,12 +89,11 @@ static void copyToUWS(WebCore::FetchHeaders* headers, UWSResponse* res) template static void handlePromise(PromiseType* promise, JSC__JSGlobalObject* globalObject, void* ctx, void (*ArgFn3)(void*, JSC__JSGlobalObject* arg0, JSC__CallFrame* callFrame), void (*ArgFn4)(void*, JSC__JSGlobalObject* arg0, JSC__CallFrame* callFrame)) { - gcProtect(promise); + auto globalThis = reinterpret_cast(globalObject); JSC::JSNativeStdFunction* resolverFunction = JSC::JSNativeStdFunction::create( globalObject->vm(), globalObject, 1, String(), [ctx, promise, ArgFn3](JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) -> const JSC::EncodedJSValue { ArgFn3(ctx, globalObject, callFrame); - gcUnprotect(promise); return JSC::JSValue::encode(JSC::jsUndefined()); }); @@ -102,7 +101,6 @@ static void handlePromise(PromiseType* promise, JSC__JSGlobalObject* globalObjec globalObject->vm(), globalObject, 1, String(), [ctx, promise, ArgFn4](JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) -> JSC::EncodedJSValue { ArgFn4(ctx, globalObject, callFrame); - gcUnprotect(promise); return JSC::JSValue::encode(JSC::jsUndefined()); }); -- cgit v1.2.3