diff options
author | 2022-09-06 20:59:18 -0700 | |
---|---|---|
committer | 2022-09-06 20:59:18 -0700 | |
commit | 6e9159a9adf94953f66c56fcb99f8c4e2187ef6a (patch) | |
tree | ea8a250f099fd59df633a444faf878f225b36c7f /src/bun.js/bindings/JSFFIFunction.cpp | |
parent | dda23a60766c23fcd4d8cb24b9d232820cc5aab9 (diff) | |
download | bun-6e9159a9adf94953f66c56fcb99f8c4e2187ef6a.tar.gz bun-6e9159a9adf94953f66c56fcb99f8c4e2187ef6a.tar.zst bun-6e9159a9adf94953f66c56fcb99f8c4e2187ef6a.zip |
workaround test failure
Diffstat (limited to 'src/bun.js/bindings/JSFFIFunction.cpp')
-rw-r--r-- | src/bun.js/bindings/JSFFIFunction.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/bun.js/bindings/JSFFIFunction.cpp b/src/bun.js/bindings/JSFFIFunction.cpp index 686cb0250..07fefac1f 100644 --- a/src/bun.js/bindings/JSFFIFunction.cpp +++ b/src/bun.js/bindings/JSFFIFunction.cpp @@ -36,17 +36,22 @@ #include "DOMJITIDLTypeFilter.h" #include "DOMJITHelpers.h" -extern "C" Zig::JSFFIFunction* Bun__CreateFFIFunction(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer) +extern "C" Zig::JSFFIFunction* Bun__CreateFFIFunction(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer, bool strong) { JSC::VM& vm = globalObject->vm(); Zig::JSFFIFunction* function = Zig::JSFFIFunction::create(vm, globalObject, argCount, symbolName != nullptr ? Zig::toStringCopy(*symbolName) : String(), functionPointer, JSC::NoIntrinsic); - // globalObject->trackFFIFunction(function); + if (strong) + globalObject->trackFFIFunction(function); return function; } -extern "C" JSC::EncodedJSValue Bun__CreateFFIFunctionValue(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer); -extern "C" JSC::EncodedJSValue Bun__CreateFFIFunctionValue(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer) +extern "C" void Bun__untrackFFIFunction(Zig::GlobalObject* globalObject, JSC::EncodedJSValue function) { - return JSC::JSValue::encode(JSC::JSValue(Bun__CreateFFIFunction(globalObject, symbolName, argCount, functionPointer))); + globalObject->untrackFFIFunction(JSC::jsCast<JSC::JSFunction*>(JSC::JSValue::decode(function))); +} +extern "C" JSC::EncodedJSValue Bun__CreateFFIFunctionValue(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer, bool strong); +extern "C" JSC::EncodedJSValue Bun__CreateFFIFunctionValue(Zig::GlobalObject* globalObject, const ZigString* symbolName, unsigned argCount, Zig::FFIFunction functionPointer, bool strong) +{ + return JSC::JSValue::encode(JSC::JSValue(Bun__CreateFFIFunction(globalObject, symbolName, argCount, functionPointer, strong))); } namespace Zig { |