diff --git a/React/Fabric/RCTScheduler.mm b/React/Fabric/RCTScheduler.mm index 07d0872a0de..7e00d2af022 100644 --- a/React/Fabric/RCTScheduler.mm +++ b/React/Fabric/RCTScheduler.mm @@ -56,8 +56,7 @@ class SchedulerDelegateProxy : public SchedulerDelegate { { if (self = [super init]) { _delegateProxy = std::make_shared((__bridge void *)self); - _scheduler = std::make_shared(toolbox); - _scheduler->setDelegate(_delegateProxy.get()); + _scheduler = std::make_shared(toolbox, _delegateProxy.get()); } return self; diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp index b4c7d31ef44..811a6d90950 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp @@ -229,8 +229,7 @@ void Binding::installFabricUIManager( toolbox.runtimeExecutor = runtimeExecutor; toolbox.synchronousEventBeatFactory = synchronousBeatFactory; toolbox.asynchronousEventBeatFactory = asynchronousBeatFactory; - scheduler_ = std::make_shared(toolbox); - scheduler_->setDelegate(this); + scheduler_ = std::make_shared(toolbox, this); } void Binding::uninstallFabricUIManager() { diff --git a/ReactCommon/fabric/uimanager/Scheduler.cpp b/ReactCommon/fabric/uimanager/Scheduler.cpp index af6e080f0cf..681d147a8d7 100644 --- a/ReactCommon/fabric/uimanager/Scheduler.cpp +++ b/ReactCommon/fabric/uimanager/Scheduler.cpp @@ -18,7 +18,9 @@ namespace facebook { namespace react { -Scheduler::Scheduler(SchedulerToolbox schedulerToolbox) { +Scheduler::Scheduler( + SchedulerToolbox schedulerToolbox, + SchedulerDelegate *delegate) { runtimeExecutor_ = schedulerToolbox.runtimeExecutor; reactNativeConfig_ = @@ -56,6 +58,8 @@ Scheduler::Scheduler(SchedulerToolbox schedulerToolbox) { rootComponentDescriptor_ = std::make_unique(eventDispatcher); + delegate_ = delegate; + uiManagerRef.setDelegate(this); uiManagerRef.setShadowTreeRegistry(&shadowTreeRegistry_); uiManagerRef.setComponentDescriptorRegistry(componentDescriptorRegistry_); diff --git a/ReactCommon/fabric/uimanager/Scheduler.h b/ReactCommon/fabric/uimanager/Scheduler.h index 199a7a61ea7..cdeaf237194 100644 --- a/ReactCommon/fabric/uimanager/Scheduler.h +++ b/ReactCommon/fabric/uimanager/Scheduler.h @@ -32,7 +32,7 @@ namespace react { */ class Scheduler final : public UIManagerDelegate, public ShadowTreeDelegate { public: - Scheduler(SchedulerToolbox schedulerToolbox); + Scheduler(SchedulerToolbox schedulerToolbox, SchedulerDelegate *delegate); ~Scheduler(); #pragma mark - Surface Management