diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp index 0164dc1c768..7f88bce75b3 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp @@ -79,7 +79,7 @@ jsi::Value RuntimeSchedulerBinding::get( jsi::Runtime &runtime, jsi::Value const &, jsi::Value const *arguments, - size_t) noexcept -> jsi::Value { + size_t count) noexcept -> jsi::Value { SchedulerPriority priority = fromRawValue(arguments[0].getNumber()); auto callback = arguments[1].getObject(runtime).getFunction(runtime); diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/primitives.h b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/primitives.h index 67c085da251..b3db7b49b4b 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/primitives.h @@ -13,12 +13,17 @@ namespace facebook { namespace react { +struct TaskWrapper : public jsi::HostObject { + TaskWrapper(std::shared_ptr const &task) : task(task) {} + + std::shared_ptr task; +}; + inline static jsi::Value valueFromTask( jsi::Runtime &runtime, std::shared_ptr task) { - jsi::Object obj(runtime); - obj.setNativeState(runtime, std::move(task)); - return obj; + return jsi::Object::createFromHostObject( + runtime, std::make_shared(task)); } inline static std::shared_ptr taskFromValue( @@ -28,7 +33,7 @@ inline static std::shared_ptr taskFromValue( return nullptr; } - return value.getObject(runtime).getNativeState(runtime); + return value.getObject(runtime).getHostObject(runtime)->task; } } // namespace react