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 7a13eb84ef3..0a2f1795efd 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 3946f72e4dc..8432512de07 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 13a5630b0b7..119ce41c24b 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 07309a87af5..91868c76ce7 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 5a43e19ac60..9914e3b9839 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 fa980b713d2..e3dc6d0b7ea 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 de50c993878..bd4f5fa955f 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 b55e5ae3ae0..0aeb2dff39c 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 ae7adc6ace1..97ca363151d 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 df8d08b2bf6..f93a2639020 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 aa739ab422a..42cf11b0695 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 8c1a443f9e5..77e11f7934e 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 ef5972293e1..f203598b227 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 49bb7e6fd07..538c5f03bfb 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 d51b41a3058..1daca2beb1a 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 4f716680969..0fdb00bdd60 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 a5c113c6452..6d71e1ebc1d 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 083ad10db87..c8b2784cb09 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 2af5a1f6e2e..a204398861c 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 1475b17584c..e7f1ca69673 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 99c11a3abec..f6a29012b5a 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 3f239f96cbe..51e668b46f2 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 3decdb6a625..3a3ebbe84b9 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 43fdec8dc0f..54147b6097a 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 9f19c24fa19..86b8eed3c0c 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 b23ced993a5..3ae459f089b 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 cdfb5933076..f29c6541314 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 559bba5a152..86302756ecf 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 78e799feee0..43f8b63e1c8 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 781312e1a2e..200cb24f81a 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 820d403af37..e85e74cf351 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 cf52e0d41ca..4ee9b169d77 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 e657cc5514f..b02aaa65f93 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 d57b5ef2e9a..c433c71acee 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 1944a01f261..f0ced11264f 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 66a36a94b2f..040744ce300 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 {