Skip to content

Commit 39c817e

Browse files
j-piaseckifacebook-github-bot
authored andcommitted
Forward declare ShadowTreeRevisionConsistencyManager (#58370)
Summary: Stops the for-frameworks and public headers from pulling in the now-guarded private header `react/renderer/consistency/ShadowTreeRevisionConsistencyManager.h`. It was included by `RuntimeScheduler.h` (and its two forks `RuntimeScheduler_Legacy.h` and `RuntimeScheduler_Modern.h`) and by the public `UIManager.h`, which makes the private guard a hard error for consumers under `RN_STRICT_API`. Every use is a pointer, so those headers now forward declare the type and the include moves to `UIManager.cpp`. `UIManager.h` also drops `LazyShadowTreeRevisionConsistencyManager.h`, which re-exposed the same header through inheritance. Changelog: [Internal] Differential Revision: D119054240
1 parent 8f9232b commit 39c817e

4 files changed

Lines changed: 8 additions & 2 deletions

File tree

‎packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
namespace facebook::react {
2222

23+
class ShadowTreeRevisionConsistencyManager;
24+
2325
class RuntimeScheduler_Legacy final : public RuntimeSchedulerBase {
2426
public:
2527
explicit RuntimeScheduler_Legacy(

‎packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
namespace facebook::react {
2121

22+
class ShadowTreeRevisionConsistencyManager;
23+
2224
class RuntimeScheduler_Modern final : public RuntimeSchedulerBase {
2325
public:
2426
explicit RuntimeScheduler_Modern(

‎packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <cxxreact/TraceSection.h>
1212
#include <react/debug/react_native_assert.h>
1313
#include <react/featureflags/ReactNativeFeatureFlags.h>
14+
#include <react/renderer/consistency/ShadowTreeRevisionConsistencyManager.h>
1415
#include <react/renderer/core/DynamicPropsUtilities.h>
1516
#include <react/renderer/core/PropsParserContext.h>
1617
#include <react/renderer/core/ShadowNodeFragment.h>
@@ -19,6 +20,7 @@
1920
#include <react/renderer/uimanager/UIManagerBinding.h>
2021
#include <react/renderer/uimanager/UIManagerCommitHook.h>
2122
#include <react/renderer/uimanager/UIManagerMountHook.h>
23+
#include <react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h>
2224

2325
#include <glog/logging.h>
2426

‎packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include <shared_mutex>
1717

1818
#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
19-
#include <react/renderer/consistency/ShadowTreeRevisionConsistencyManager.h>
2019
#include <react/renderer/core/InstanceHandle.h>
2120
#include <react/renderer/core/RawValue.h>
2221
#include <react/renderer/core/ShadowNode.h>
@@ -29,14 +28,15 @@
2928
#include <react/renderer/uimanager/UIManagerDelegate.h>
3029
#include <react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h>
3130
#include <react/renderer/uimanager/UIManagerViewTransitionDelegate.h>
32-
#include <react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h>
3331
#include <react/renderer/uimanager/consistency/ShadowTreeRevisionProvider.h>
3432
#include <react/renderer/uimanager/primitives.h>
3533
#include <react/utils/ContextContainer.h>
3634

3735
namespace facebook::react {
3836

37+
class LazyShadowTreeRevisionConsistencyManager;
3938
class LeakChecker;
39+
class ShadowTreeRevisionConsistencyManager;
4040
class UIManagerBinding;
4141
class UIManagerCommitHook;
4242
class UIManagerMountHook;

0 commit comments

Comments
 (0)