From 72a7e1cf05787cc222ff2af7d640ae6fdc2aef6d Mon Sep 17 00:00:00 2001 From: Dawid Malecki Date: Mon, 28 Sep 2026 02:24:30 -0700 Subject: [PATCH 1/5] Fix dynamic-framework header resolution for stable C++ umbrella headers (#58679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Fix dynamic-framework header resolution for stable C++ umbrella headers. Header paths are now added only to targets that depend on the owning framework, including transitively, without exposing a framework’s built headers to its own compilation. ## Changelog: [Internal] Pull Request resolved: https://github.com/react/react-native/pull/58679 Test Plan: - Focused CocoaPods tests: 16 tests, 27 assertions, all passing. - Dynamic-framework CocoaPods generation: passing. - Verified React-RuntimeApple → React-RCTFabric → React-Fabric receives the React-Fabric umbrella path. - Verified React-Fabric does not receive its own built-framework path. - Verified the dynamic React-Fabric pod target resolves `$(PODS_TARGET_SRCROOT)/react/renderer/components/view` and `$(PODS_TARGET_SRCROOT)/react/renderer/core` before the framework exists. - `ruby --disable-gems -c packages/react-native/ReactCommon/React-Fabric.podspec` - `yarn format-check` - `arc lint xplat/js/react-native-github/packages/react-native/ReactCommon/React-Fabric.podspec` - Agent validators: arc-format, arc-lint, and arc-lint-testquality passed. The full CocoaPods Ruby test process could not start on this host because its RubyGems/JSON installation is broken; the existing focused CocoaPods coverage remains unchanged. Differential Revision: D121777587 Pulled By: coado --- .../ReactCommon/React-Fabric.podspec | 49 +++++----- .../scripts/cocoapods/__tests__/utils-test.rb | 90 ++++++++++++++++++- .../react-native/scripts/cocoapods/utils.rb | 65 ++++++++++++-- 3 files changed, 170 insertions(+), 34 deletions(-) diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index 7a13eb84ef36..0a2f1795efd6 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -18,6 +18,27 @@ end react_native_path = ".." +header_search_path = [ + "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"", + "\"$(PODS_ROOT)/Headers/Private/Yoga\"", + "\"$(PODS_TARGET_SRCROOT)\"" +] + +if ENV['USE_FRAMEWORKS'] + header_search_path = header_search_path + [ + "\"$(PODS_TARGET_SRCROOT)/react/renderer/textlayoutmanager/platform/ios\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/scrollview/platform/cxx\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/scrollview/platform/ios\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/legacyviewmanagerinterop/platform/ios\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/text/platform/cxx\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/textinput/platform/ios\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view/platform/cxx\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/core\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/debug\"", + ] +end + Pod::Spec.new do |s| s.name = "React-Fabric" s.version = version @@ -30,7 +51,8 @@ Pod::Spec.new do |s| s.source_files = podspec_sources("dummyFile.cpp", "") s.pod_target_xcconfig = { "USE_HEADERMAP" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), - "DEFINES_MODULE" => "YES" } + "DEFINES_MODULE" => "YES", + "HEADER_SEARCH_PATHS" => header_search_path.join(" ") } resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_Fabric") @@ -89,32 +111,9 @@ Pod::Spec.new do |s| end s.subspec "core" do |ss| - header_search_path = [ - "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"", - "\"$(PODS_ROOT)/Headers/Private/Yoga\"", - "\"$(PODS_TARGET_SRCROOT)\"" - ] - - if ENV['USE_FRAMEWORKS'] - header_search_path = header_search_path + [ - "\"$(PODS_TARGET_SRCROOT)/react/renderer/textlayoutmanager/platform/ios\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/scrollview/platform/cxx\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/scrollview/platform/ios\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/legacyviewmanagerinterop/platform/ios\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/text/platform/cxx\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/textinput/platform/ios\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view/platform/cxx\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/core\"", - "\"$(PODS_TARGET_SRCROOT)/react/renderer/debug\"", - ] - end - ss.source_files = podspec_sources("react/renderer/core/**/*.{m,mm,cpp,h}", "react/renderer/core/**/*.{h}") ss.exclude_files = ["react/renderer/core/tests", "react/renderer/core/React"] ss.header_dir = "react/renderer/core" - ss.pod_target_xcconfig = { - "HEADER_SEARCH_PATHS" => header_search_path.join(" ") - } end s.subspec "coreUmbrella" do |ss| @@ -141,6 +140,8 @@ Pod::Spec.new do |s| s.subspec "components" do |ss| ss.subspec "root" do |sss| + sss.dependency "React-Fabric/coreUmbrella" + sss.dependency "React-Fabric/components/viewUmbrella" sss.source_files = podspec_sources("react/renderer/components/root/**/*.{m,mm,cpp,h}", "react/renderer/components/root/**/*.{h}") sss.exclude_files = "react/renderer/components/root/tests" sss.header_dir = "react/renderer/components/root" diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb index 3946f72e4dc1..8432512de07b 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb @@ -766,7 +766,12 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths second_target ] ) - pods_projects_mock = PodsProjectMock.new([third_target], {"hermes-engine" => {}}) + pods_projects_mock = PodsProjectMock.new( + [third_target], + {"hermes-engine" => {}}, + "test/path-pod.xcodeproj", + [prepare_config("Debug"), prepare_config("Release")] + ) installer = InstallerMock.new(pods_projects_mock, [ AggregatedProjectMock.new(user_project_mock) ]) @@ -777,10 +782,15 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths # Assert user_project_mock.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] - expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-timing/React_timing.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-cxxstableapi/React_cxxstableapi.framework/Headers" + expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/scrollview/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/scrollview/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-timing/React_timing.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/textlayoutmanager/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/text/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/textinput/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/switch/iosswitch ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-bridging/React_bridging.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-cxxstableapi/React_cxxstableapi.framework/Headers" assert_equal(expected_search_path, received_search_path) end + pods_projects_mock.build_configurations.each do |config| + received_search_paths = Shellwords.shellsplit(config.build_settings["HEADER_SEARCH_PATHS"]) + assert_false(received_search_paths.include?("${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers")) + end + installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| if pod_name == "SecondTarget" target_installation_result.native_target.build_configurations.each do |config| @@ -842,6 +852,20 @@ def test_add_search_path_if_not_included_does_not_add_existing_path_to_string assert_equal("/path/to/headers /another/path", result) end + def test_add_search_path_if_not_included_adds_path_that_is_prefix_of_existing_path + current_paths = "/path/to/headers/platform/ios" + new_path = "/path/to/headers" + result = ReactNativePodsUtils.add_search_path_if_not_included(current_paths, new_path) + assert_equal("/path/to/headers/platform/ios /path/to/headers", result) + end + + def test_add_search_path_if_not_included_does_not_duplicate_quoted_path_with_spaces + current_paths = '"/path/with spaces/headers" /another/path' + new_path = '"/path/with spaces/headers"' + result = ReactNativePodsUtils.add_search_path_if_not_included(current_paths, new_path) + assert_equal(current_paths, result) + end + def test_add_search_path_if_not_included_does_not_add_existing_path_with_leading_space_to_string current_paths = " /path/with/leading/space /another/path" new_path = "/path/with/leading/space" @@ -977,6 +1001,68 @@ def test_createHeaderSearchPathsForStableUmbrellas_whenUsingPrebuiltCore_addsNot assert_equal([], result) end + def test_setStableUmbrellaSearchPaths_addsOwningFrameworkPathToDependentTarget + target = prepare_target("Consumer", nil, [DependencyMock.new("React-Fabric")]) + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_equal( + '$(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers"', + config.build_settings["HEADER_SEARCH_PATHS"] + ) + end + end + + def test_setStableUmbrellaSearchPaths_addsOwningFrameworkPathToTransitivelyDependentTarget + dependency = Struct.new(:name, :target) + fabric_target = prepare_target("React-Fabric") + intermediate_target = prepare_target( + "Intermediate", + nil, + [dependency.new("React-Fabric", fabric_target)] + ) + consumer_target = prepare_target( + "Consumer", + nil, + [dependency.new("Intermediate", intermediate_target)] + ) + target_installation_result = TargetInstallationResultMock.new(consumer_target, consumer_target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + consumer_target.build_configurations.each do |config| + assert_equal( + '$(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers"', + config.build_settings["HEADER_SEARCH_PATHS"] + ) + end + end + + def test_setStableUmbrellaSearchPaths_doesNotAddOwningFrameworkPathToUnrelatedTarget + target = prepare_target("React-Fabric") + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_nil(config.build_settings["HEADER_SEARCH_PATHS"]) + end + end + + def test_setStableUmbrellaSearchPaths_whenUsingPrebuiltCore_addsNothing + ReactNativeCoreUtils.class_variable_set(:@@build_from_source, false) + target = prepare_target("Consumer", nil, [DependencyMock.new("React-Fabric")]) + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_nil(config.build_settings["HEADER_SEARCH_PATHS"]) + end + end + # ================================= # # TEST - Add RN_BUILDING definition # # ================================= # diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 13a5630b0b7b..119ce41c24b0 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -358,15 +358,19 @@ def self.create_header_search_path_for_frameworks(base_folder, pod_name, framewo def self.create_header_search_paths_for_stable_umbrellas(base_folder) return [] unless ReactNativeCoreUtils.build_rncore_from_source() + self.stable_umbrella_frameworks.flat_map { |pod_name, framework_name| + self.create_header_search_path_for_frameworks(base_folder, pod_name, framework_name, []) + } + end + + def self.stable_umbrella_frameworks [ ["React-Fabric", "React_Fabric"], ["React-debug", "React_debug"], ["React-rendererdebug", "React_rendererdebug"], ["React-timing", "React_timing"], ["React-utils", "React_utils"], - ].flat_map { |pod_name, framework_name| - self.create_header_search_path_for_frameworks(base_folder, pod_name, framework_name, []) - } + ] end # Add a new dependency to an existing spec, configuring also the headers search paths @@ -399,6 +403,9 @@ def self.update_search_paths(installer) projects = self.extract_projects(installer) projects.each do |project| + stable_umbrella_search_paths = project == installer.pods_project ? + [] : ReactNativePodsUtils.create_header_search_paths_for_stable_umbrellas("PODS_CONFIGURATION_BUILD_DIR") + project.build_configurations.each do |config| header_search_paths = config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited)" @@ -411,7 +418,7 @@ def self.update_search_paths(installer) "react/renderer/components/scrollview/platform/cxx", "react/renderer/components/scrollview/platform/ios", ], false)) - .concat(ReactNativePodsUtils.create_header_search_paths_for_stable_umbrellas("PODS_CONFIGURATION_BUILD_DIR")) + .concat(stable_umbrella_search_paths) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-FabricComponents", "React_FabricComponents", [ "react/renderer/textlayoutmanager/platform/ios", "react/renderer/components/text/platform/cxx", @@ -436,6 +443,8 @@ def self.update_search_paths(installer) end installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| + self.set_stable_umbrella_search_paths(target_installation_result) + if self.react_native_pods.include?(pod_name) || pod_name.include?("Pod") || pod_name.include?("Tests") next end @@ -652,7 +661,9 @@ def self.add_search_path_if_not_included(current_search_paths, new_search_path) if current_search_paths.is_a?(String) current_search_paths = current_search_paths.strip - return "#{current_search_paths} #{new_search_path}" unless current_search_paths.include?(new_search_path) + current_paths = Shellwords.shellsplit(current_search_paths) + normalized_new_path = Shellwords.shellsplit(new_search_path).first + return "#{current_search_paths} #{new_search_path}" unless current_paths.include?(normalized_new_path) end if current_search_paths.is_a?(Array) @@ -663,10 +674,29 @@ def self.add_search_path_if_not_included(current_search_paths, new_search_path) current_search_paths end - def self.update_header_paths_if_depends_on(target_installation_result, dependency_name, header_paths) - depends_on_framework = target_installation_result.native_target.dependencies.any? { |d| d.name == dependency_name } + def self.target_depends_on?(target, dependency_name, visited_targets = {}) + return false if target == nil + + target_identifier = target.respond_to?(:uuid) ? target.uuid : target.object_id + target_identifier ||= target.object_id + return false if visited_targets[target_identifier] + + visited_targets[target_identifier] = true + target.dependencies.any? do |dependency| + dependency.name == dependency_name || + (dependency.respond_to?(:target) && self.target_depends_on?(dependency.target, dependency_name, visited_targets)) + end + end + + def self.update_header_paths_if_depends_on(target_installation_result, dependency_name, header_paths, include_transitive_dependencies: false) + native_target = target_installation_result.native_target + depends_on_framework = if include_transitive_dependencies + self.target_depends_on?(native_target, dependency_name) + else + native_target.dependencies.any? { |d| d.name == dependency_name } + end if depends_on_framework - target_installation_result.native_target.build_configurations.each do |config| + native_target.build_configurations.each do |config| header_search_path = config.build_settings["HEADER_SEARCH_PATHS"] != nil ? config.build_settings["HEADER_SEARCH_PATHS"] : "$(inherited)" header_paths.each { |header| header_search_path = ReactNativePodsUtils.add_search_path_if_not_included(header_search_path, header) } config.build_settings["HEADER_SEARCH_PATHS"] = header_search_path @@ -674,6 +704,25 @@ def self.update_header_paths_if_depends_on(target_installation_result, dependenc end end + def self.set_stable_umbrella_search_paths(target_installation_result) + return unless ReactNativeCoreUtils.build_rncore_from_source() + + ReactNativePodsUtils.stable_umbrella_frameworks.each do |pod_name, framework_name| + header_search_paths = ReactNativePodsUtils.create_header_search_path_for_frameworks( + "PODS_CONFIGURATION_BUILD_DIR", + pod_name, + framework_name, + [] + ).map { |search_path| "\"#{search_path}\"" } + ReactNativePodsUtils.update_header_paths_if_depends_on( + target_installation_result, + pod_name, + header_search_paths, + include_transitive_dependencies: true + ) + end + end + def self.set_rctfolly_search_paths(target_installation_result) ReactNativePodsUtils.update_header_paths_if_depends_on(target_installation_result, "RCT-Folly", [ "\"$(PODS_ROOT)/RCT-Folly\"", From 54977792acc55cc7a614ae7272b9e9043718bbe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Mon, 28 Sep 2026 02:24:30 -0700 Subject: [PATCH 2/5] Use public umbrellas in root headers Summary: Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled. Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers. Changelog: [Internal] Differential Revision: D120532145 --- .../renderer/components/root/RootComponentDescriptor.h | 2 +- .../react/renderer/components/root/RootProps.h | 8 ++------ .../react/renderer/components/root/RootShadowNode.h | 5 ++--- .../react-native/scripts/ios-prebuild/headers-config.js | 5 ++++- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h index 07309a87af5d..91868c76ce77 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h index 5a43e19ac606..9914e3b9839f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h @@ -9,12 +9,8 @@ #include -#include - -#include -#include -#include -#include +#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h index fa980b713d23..e3dc6d0b7eab 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h @@ -11,10 +11,9 @@ #include +#include +#include #include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index de50c9938788..bd4f5fa955f0 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -185,7 +185,10 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { { name: 'imagemanager', - headerPatterns: ['react/renderer/imagemanager/*.h'], + headerPatterns: [ + 'react/renderer/imagemanager/*.h', + 'react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h', + ], headerDir: 'react/renderer/imagemanager', }, From a30b5eeab36396aadaece5bb16196d28c6f51536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Mon, 28 Sep 2026 02:24:30 -0700 Subject: [PATCH 3/5] Use public umbrellas in textinput headers Summary: Route public React Native dependencies in exported TextInput framework headers through their supported umbrella headers. Preserve fine-grained includes for same-target, framework-tier, graphics, and third-party dependencies. Changelog: [Internal] Differential Revision: D120677815 --- packages/react-native/Package.swift | 2 +- .../ReactCommon/React-FabricComponents.podspec | 4 ++-- .../renderer/components/textinput/BaseTextInputProps.h | 4 ++-- .../components/textinput/BaseTextInputShadowNode.h | 8 +++----- .../renderer/components/textinput/TextInputEventEmitter.h | 2 +- .../react/renderer/components/textinput/baseConversions.h | 3 +-- .../AndroidTextInputComponentDescriptor.h | 2 +- .../androidtextinput/AndroidTextInputEventEmitter.h | 2 +- .../components/androidtextinput/AndroidTextInputProps.h | 8 ++------ .../androidtextinput/AndroidTextInputShadowNode.h | 4 ++-- .../components/androidtextinput/AndroidTextInputState.h | 2 +- .../iostextinput/TextInputComponentDescriptor.h | 2 +- .../renderer/components/iostextinput/TextInputProps.h | 7 ++----- .../react/renderer/components/iostextinput/conversions.h | 3 +-- .../renderer/components/iostextinput/propsConversions.h | 5 ++--- 15 files changed, 23 insertions(+), 35 deletions(-) diff --git a/packages/react-native/Package.swift b/packages/react-native/Package.swift index b55e5ae3ae0a..0aeb2dff39c2 100644 --- a/packages/react-native/Package.swift +++ b/packages/react-native/Package.swift @@ -554,7 +554,7 @@ let reactFabricTextInput = RNTarget( name: .reactFabricTextInput, path: "ReactCommon/react/renderer/components/textinput", excludedPaths: ["platform/android", "platform/macos"], - dependencies: [.reactNativeDependencies, .reactCore, .reactJsiExecutor, .reactTurboModuleCore, .jsi, .logger, .reactDebug, .reactFeatureFlags, .reactUtils, .reactRuntimeScheduler, .reactCxxReact, .yoga, .reactRendererDebug, .reactGraphics, .reactFabric, .reactTurboModuleBridging, .reactFabricTextLayoutManager], + dependencies: [.reactNativeDependencies, .reactCore, .reactJsiExecutor, .reactTurboModuleCore, .jsi, .logger, .reactDebug, .reactFeatureFlags, .reactUtils, .reactRuntimeScheduler, .reactCxxReact, .yoga, .reactRendererDebug, .reactGraphics, .reactFabric, .reactTurboModuleBridging, .reactFabricTextLayoutManager, .reactImageManagerApple], sources: [".", "platform/ios"] ) diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index ae7adc6ace19..97ca363151d0 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -81,11 +81,11 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-rendererdebug") add_dependency(s, "React-graphics", :additional_framework_paths => ["react/renderer/graphics/platform/ios"]) + add_dependency(s, "React-ImageManager", :additional_framework_paths => ["react/renderer/imagemanager/platform/ios"]) add_dependency(s, "React-Fabric", :additional_framework_paths => [ "react/renderer/components/scrollview/platform/cxx", "react/renderer/components/scrollview/platform/ios", - "react/renderer/components/view/platform/cxx", - "react/renderer/imagemanager/platform/ios" + "react/renderer/components/view/platform/cxx" ]) depend_on_js_engine(s) diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h index df8d08b2bf6e..f93a26390201 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h @@ -9,11 +9,11 @@ #include +#include +#include #include #include #include -#include -#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h index aa739ab422ae..42cf11b0695f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h @@ -11,19 +11,17 @@ #include +#include +#include +#include #include #include #include #include #include -#include -#include -#include -#include #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h index 8c1a443f9e5f..77e11f7934e6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h index ef5972293e16..f203598b227a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h @@ -9,9 +9,8 @@ #include +#include #include -#include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h index 49bb7e6fd07d..538c5f03bfbf 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h @@ -19,7 +19,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h index d51b41a30580..1daca2beb1ab 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h @@ -9,7 +9,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h index 4f7166809692..0fdb00bdd606 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h @@ -9,17 +9,13 @@ #include -#include -#include - +#include +#include #include #include #include #include -#include -#include #include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h index a5c113c6452d..6d71e1ebc1d9 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h @@ -13,9 +13,9 @@ #include "AndroidTextInputProps.h" #include "AndroidTextInputState.h" +#include +#include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h index 083ad10db87b..c8b2784cb095 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h @@ -13,8 +13,8 @@ #include #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h index 2af5a1f6e2ee..a204398861c4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h index 1475b17584c0..e7f1ca696733 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h @@ -9,16 +9,13 @@ #include +#include +#include #include #include #include #include #include -#include -#include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h index 99c11a3abec1..f6a29012b5ab 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h @@ -9,9 +9,8 @@ #include +#include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h index 3f239f96cbef..51e668b46f26 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h @@ -9,10 +9,9 @@ #include -#include +#include +#include #include -#include -#include namespace facebook::react { From a7a2709ed8c1566a5fa27cfd3003b1d3b3708bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Mon, 28 Sep 2026 02:24:30 -0700 Subject: [PATCH 4/5] Use public umbrellas in scrollview headers Summary: Route ScrollView framework header dependencies through their supported public umbrella entry points while preserving the module's framework-tier classification. Add direct standard-library and graphics includes where the exported declarations would otherwise rely on transitive coverage. Changelog: [Internal] Differential Revision: D121191600 --- .../renderer/components/scrollview/BaseScrollViewProps.h | 5 +++-- .../react/renderer/components/scrollview/ScrollEvent.h | 8 ++++++-- .../components/scrollview/ScrollViewComponentDescriptor.h | 2 +- .../components/scrollview/ScrollViewEventEmitter.h | 7 +++---- .../renderer/components/scrollview/ScrollViewProps.h | 2 ++ .../renderer/components/scrollview/ScrollViewShadowNode.h | 5 ++--- .../react/renderer/components/scrollview/conversions.h | 7 +++++-- ...ndroidHorizontalScrollContentViewComponentDescriptor.h | 2 +- .../AndroidHorizontalScrollContentViewShadowNode.h | 4 ++-- .../components/scrollview/HostPlatformScrollViewProps.h | 8 ++++++-- 10 files changed, 31 insertions(+), 19 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h index 3decdb6a6251..3a3ebbe84b9b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h @@ -9,11 +9,12 @@ #include +#include +#include #include -#include -#include #include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h index 43fdec8dc0f3..54147b6097ae 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h @@ -9,12 +9,16 @@ #include +#include +#include #include -#include -#include #include #include +#include +#include +#include + namespace facebook::react { struct ScrollEvent : public EventPayload { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h index 9f19c24fa192..86b8eed3c0c0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h index b23ced993a51..3ae459f089be 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h @@ -9,11 +9,10 @@ #include -#include - +#include #include -#include -#include + +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h index cdfb5933076c..f29c65413140 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h @@ -11,6 +11,8 @@ #include +#include + namespace facebook::react { using ScrollViewProps = HostPlatformScrollViewProps; using SharedScrollViewProps = std::shared_ptr; diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h index 559bba5a1527..86302756ecf7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h @@ -9,12 +9,11 @@ #include +#include +#include #include #include #include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h index 78e799feee06..43f8b63e1c8a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h @@ -9,9 +9,12 @@ #include +#include #include -#include -#include + +#include +#include +#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h index 781312e1a2ef..200cb24f81aa 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h index 820d403af374..e85e74cf3515 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h @@ -9,10 +9,10 @@ #include +#include +#include #include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h index cf52e0d41ca5..4ee9b169d77f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h @@ -9,10 +9,14 @@ #include +#include +#include +#include #include #include -#include -#include +#include + +#include namespace facebook::react { From 79b0fb323392a9ff68503ea1e01f2369710f788c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Mon, 28 Sep 2026 04:13:17 -0700 Subject: [PATCH 5/5] Clean up MapBuffer public header dependencies Summary: Keep MapBuffer exported headers self-contained by removing implementation-only Debug and logging dependencies. Move those includes into the source files that use them and declare standard-library dependencies directly. Changelog: [Internal] Differential Revision: D121398637 --- .../ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp | 3 +++ .../ReactCommon/react/renderer/mapbuffer/MapBuffer.h | 6 +----- .../react/renderer/mapbuffer/MapBufferBuilder.cpp | 8 +++++++- .../react/renderer/mapbuffer/MapBufferBuilder.h | 5 ++++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp index e657cc5514fc..b02aaa65f937 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp @@ -6,10 +6,13 @@ */ #include "MapBuffer.h" +#include #include #include +#include #include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h index d57b5ef2e9a7..c433c71acee7 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h @@ -8,13 +8,9 @@ #pragma once #include -#include - -#include +#include #include -#include -#include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp index 1944a01f261f..f0ced11264f8 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp @@ -6,7 +6,13 @@ */ #include "MapBufferBuilder.h" + +#include + #include +#include +#include +#include namespace facebook::react { @@ -40,7 +46,7 @@ void MapBufferBuilder::storeKeyValue( if (valueSize > MAX_BUCKET_VALUE_SIZE) { LOG(ERROR) << "Error: size of value must be <= MAX_VALUE_SIZE. ValueSize: " << valueSize; - abort(); + std::abort(); } uint64_t data = 0; diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h index 66a36a94b2f7..040744ce300f 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h @@ -8,8 +8,11 @@ #pragma once #include -#include + +#include +#include #include + #include "MapBuffer.h" namespace facebook::react {