1 // Copyright 2022-present 650 Industries. All rights reserved.
2
3 #include "ObjectDeallocator.h"
4 #include "JSIUtils.h"
5
6 namespace expo::common {
7
setDeallocator(jsi::Runtime & runtime,const std::shared_ptr<jsi::Object> & jsThis,ObjectDeallocator::Block deallocatorBlock,const std::string & key)8 void setDeallocator(
9 jsi::Runtime &runtime,
10 const std::shared_ptr<jsi::Object> &jsThis,
11 ObjectDeallocator::Block deallocatorBlock,
12 const std::string &key
13 ) {
14 std::shared_ptr<ObjectDeallocator> hostObjectPtr = std::make_shared<ObjectDeallocator>(
15 deallocatorBlock
16 );
17 jsi::Object jsDeallocator = jsi::Object::createFromHostObject(runtime, hostObjectPtr);
18 jsThis->setProperty(runtime, key.c_str(), jsi::Value(runtime, jsDeallocator));
19 }
20
21 } // namespace expo::common
22