aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-07-12 00:20:29 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-07-12 00:20:46 -0700
commit7b708255f5364175713cbe3b72634718aaec056f (patch)
tree8b137a02779795cf7afdb92ea5bde65f666e7655
parent46e8717e6c85f52c261f324767bc754809c1fdee (diff)
downloadbun-7b708255f5364175713cbe3b72634718aaec056f.tar.gz
bun-7b708255f5364175713cbe3b72634718aaec056f.tar.zst
bun-7b708255f5364175713cbe3b72634718aaec056f.zip
[jsc] Fix segfault with promises
-rw-r--r--src/bun.js/bindings/bindings.cpp4
1 files changed, 1 insertions, 3 deletions
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<typename PromiseType, bool isInternal>
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<Zig::GlobalObject*>(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());
});