diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt index 5d212d5e73cc..ec27655cc35a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<56c989556810840e2dd2a42b66d431dc>> + * @generated SignedSource<<6435f36d035c9e6156ca406c52c32f97>> */ /** @@ -552,12 +552,6 @@ public object ReactNativeFeatureFlags { @JvmStatic public fun useTurboModules(): Boolean = accessor.useTurboModules() - /** - * Use std::unordered_map instead of TinyMap in the Differentiator for improved lookup performance. - */ - @JvmStatic - public fun useUnorderedMapInDifferentiator(): Boolean = accessor.useUnorderedMapInDifferentiator() - /** * Outset the culling context frame with the provided ratio. The culling context frame size will be outset by width * ratio on the left and right, and height * ratio on the top and bottom. */ diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt index 863273b05517..5627e7c369f2 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<43aa532756b07f0b754cd74eb4811664>> + * @generated SignedSource<<846ef4482c364c5bdc7a53fb5cf13b7a>> */ /** @@ -107,7 +107,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces private var useTraitHiddenOnAndroidCache: Boolean? = null private var useTurboModuleInteropCache: Boolean? = null private var useTurboModulesCache: Boolean? = null - private var useUnorderedMapInDifferentiatorCache: Boolean? = null private var viewCullingOutsetRatioCache: Double? = null private var viewTransitionEnabledCache: Boolean? = null private var viewTransitionUseHardwareBitmapAndroidCache: Boolean? = null @@ -896,15 +895,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces return cached } - override fun useUnorderedMapInDifferentiator(): Boolean { - var cached = useUnorderedMapInDifferentiatorCache - if (cached == null) { - cached = ReactNativeFeatureFlagsCxxInterop.useUnorderedMapInDifferentiator() - useUnorderedMapInDifferentiatorCache = cached - } - return cached - } - override fun viewCullingOutsetRatio(): Double { var cached = viewCullingOutsetRatioCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt index ff9e99fb78b6..aca2fffd99cf 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5cb98793989e603846a2008aa1a6af41>> + * @generated SignedSource<<220fb16555e971c9044e337490a9666f>> */ /** @@ -202,8 +202,6 @@ public object ReactNativeFeatureFlagsCxxInterop { @DoNotStrip @JvmStatic public external fun useTurboModules(): Boolean - @DoNotStrip @JvmStatic public external fun useUnorderedMapInDifferentiator(): Boolean - @DoNotStrip @JvmStatic public external fun viewCullingOutsetRatio(): Double @DoNotStrip @JvmStatic public external fun viewTransitionEnabled(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index bcb91ecccd3b..81a95d075eb5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<78f2c235e31f57bc005e50215014fb36>> */ /** @@ -197,8 +197,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun useTurboModules(): Boolean = false - override fun useUnorderedMapInDifferentiator(): Boolean = false - override fun viewCullingOutsetRatio(): Double = 0.0 override fun viewTransitionEnabled(): Boolean = false diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt index 39176190f690..f7433e913a8b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<6ee1cc911c3ebb12b31151441dd43605>> + * @generated SignedSource<<6bb61ed8b333abcfd38da1c2ef19f421>> */ /** @@ -111,7 +111,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc private var useTraitHiddenOnAndroidCache: Boolean? = null private var useTurboModuleInteropCache: Boolean? = null private var useTurboModulesCache: Boolean? = null - private var useUnorderedMapInDifferentiatorCache: Boolean? = null private var viewCullingOutsetRatioCache: Double? = null private var viewTransitionEnabledCache: Boolean? = null private var viewTransitionUseHardwareBitmapAndroidCache: Boolean? = null @@ -987,16 +986,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc return cached } - override fun useUnorderedMapInDifferentiator(): Boolean { - var cached = useUnorderedMapInDifferentiatorCache - if (cached == null) { - cached = currentProvider.useUnorderedMapInDifferentiator() - accessedFeatureFlags.add("useUnorderedMapInDifferentiator") - useUnorderedMapInDifferentiatorCache = cached - } - return cached - } - override fun viewCullingOutsetRatio(): Double { var cached = viewCullingOutsetRatioCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt index 717264698005..4254194e4e6d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<9945400608426bf3aa1163b9f212d07c>> + * @generated SignedSource<> */ /** @@ -197,8 +197,6 @@ public interface ReactNativeFeatureFlagsProvider { @DoNotStrip public fun useTurboModules(): Boolean - @DoNotStrip public fun useUnorderedMapInDifferentiator(): Boolean - @DoNotStrip public fun viewCullingOutsetRatio(): Double @DoNotStrip public fun viewTransitionEnabled(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp index b772f7535ed7..8858ee7d035e 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<50f384f98360c4fc9d16d7c25b82aec6>> + * @generated SignedSource<<3194d64185f009102ffc2f218451b912>> */ /** @@ -561,12 +561,6 @@ class ReactNativeFeatureFlagsJavaProvider return method(javaProvider_); } - bool useUnorderedMapInDifferentiator() override { - static const auto method = - getReactNativeFeatureFlagsProviderJavaClass()->getMethod("useUnorderedMapInDifferentiator"); - return method(javaProvider_); - } - double viewCullingOutsetRatio() override { static const auto method = getReactNativeFeatureFlagsProviderJavaClass()->getMethod("viewCullingOutsetRatio"); @@ -1030,11 +1024,6 @@ bool JReactNativeFeatureFlagsCxxInterop::useTurboModules( return ReactNativeFeatureFlags::useTurboModules(); } -bool JReactNativeFeatureFlagsCxxInterop::useUnorderedMapInDifferentiator( - facebook::jni::alias_ref /*unused*/) { - return ReactNativeFeatureFlags::useUnorderedMapInDifferentiator(); -} - double JReactNativeFeatureFlagsCxxInterop::viewCullingOutsetRatio( facebook::jni::alias_ref /*unused*/) { return ReactNativeFeatureFlags::viewCullingOutsetRatio(); @@ -1347,9 +1336,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() { makeNativeMethod( "useTurboModules", JReactNativeFeatureFlagsCxxInterop::useTurboModules), - makeNativeMethod( - "useUnorderedMapInDifferentiator", - JReactNativeFeatureFlagsCxxInterop::useUnorderedMapInDifferentiator), makeNativeMethod( "viewCullingOutsetRatio", JReactNativeFeatureFlagsCxxInterop::viewCullingOutsetRatio), diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h index af512e14e22c..f3f1b585d15d 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<7a73667c552251d722f6c9800f53d251>> + * @generated SignedSource<<434594f8c9022e0fb028be591ac4147c>> */ /** @@ -291,9 +291,6 @@ class JReactNativeFeatureFlagsCxxInterop static bool useTurboModules( facebook::jni::alias_ref); - static bool useUnorderedMapInDifferentiator( - facebook::jni::alias_ref); - static double viewCullingOutsetRatio( facebook::jni::alias_ref); diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp index a7cc04fe1467..639efed954db 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<8233ac72d584e038a6c1d94bea37ea40>> + * @generated SignedSource<<6cf8cc4c41d2747fb2dabaddff723d88>> */ /** @@ -374,10 +374,6 @@ bool ReactNativeFeatureFlags::useTurboModules() { return getAccessor().useTurboModules(); } -bool ReactNativeFeatureFlags::useUnorderedMapInDifferentiator() { - return getAccessor().useUnorderedMapInDifferentiator(); -} - double ReactNativeFeatureFlags::viewCullingOutsetRatio() { return getAccessor().viewCullingOutsetRatio(); } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h index c7ed1310b230..f82614e996d6 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<501a0efcf0a4ab20827bdefc3a844b3f>> + * @generated SignedSource<<71219a9ff75aaaf54d0041722d8f44a2>> */ /** @@ -474,11 +474,6 @@ class ReactNativeFeatureFlags { */ RN_EXPORT static bool useTurboModules(); - /** - * Use std::unordered_map instead of TinyMap in the Differentiator for improved lookup performance. - */ - RN_EXPORT static bool useUnorderedMapInDifferentiator(); - /** * Outset the culling context frame with the provided ratio. The culling context frame size will be outset by width * ratio on the left and right, and height * ratio on the top and bottom. */ diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp index 12d778bb4bef..f28809701348 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<38e1f5a2dbb854a154e96c20e701b2e4>> + * @generated SignedSource<> */ /** @@ -1595,24 +1595,6 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() { return flagValue.value(); } -bool ReactNativeFeatureFlagsAccessor::useUnorderedMapInDifferentiator() { - auto flagValue = useUnorderedMapInDifferentiator_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(87, "useUnorderedMapInDifferentiator"); - - flagValue = currentProvider_->useUnorderedMapInDifferentiator(); - useUnorderedMapInDifferentiator_ = flagValue; - } - - return flagValue.value(); -} - double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() { auto flagValue = viewCullingOutsetRatio_.load(); @@ -1622,7 +1604,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(88, "viewCullingOutsetRatio"); + markFlagAsAccessed(87, "viewCullingOutsetRatio"); flagValue = currentProvider_->viewCullingOutsetRatio(); viewCullingOutsetRatio_ = flagValue; @@ -1640,7 +1622,7 @@ bool ReactNativeFeatureFlagsAccessor::viewTransitionEnabled() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(89, "viewTransitionEnabled"); + markFlagAsAccessed(88, "viewTransitionEnabled"); flagValue = currentProvider_->viewTransitionEnabled(); viewTransitionEnabled_ = flagValue; @@ -1658,7 +1640,7 @@ bool ReactNativeFeatureFlagsAccessor::viewTransitionUseHardwareBitmapAndroid() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(90, "viewTransitionUseHardwareBitmapAndroid"); + markFlagAsAccessed(89, "viewTransitionUseHardwareBitmapAndroid"); flagValue = currentProvider_->viewTransitionUseHardwareBitmapAndroid(); viewTransitionUseHardwareBitmapAndroid_ = flagValue; @@ -1676,7 +1658,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(91, "virtualViewPrerenderRatio"); + markFlagAsAccessed(90, "virtualViewPrerenderRatio"); flagValue = currentProvider_->virtualViewPrerenderRatio(); virtualViewPrerenderRatio_ = flagValue; diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h index 83bfc6d30efe..e9f453c506d4 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<7ca64bcbf3e769a24efe894e994b131e>> + * @generated SignedSource<> */ /** @@ -119,7 +119,6 @@ class ReactNativeFeatureFlagsAccessor { bool useTraitHiddenOnAndroid(); bool useTurboModuleInterop(); bool useTurboModules(); - bool useUnorderedMapInDifferentiator(); double viewCullingOutsetRatio(); bool viewTransitionEnabled(); bool viewTransitionUseHardwareBitmapAndroid(); @@ -135,7 +134,7 @@ class ReactNativeFeatureFlagsAccessor { std::unique_ptr currentProvider_; bool wasOverridden_; - std::array, 92> accessedFeatureFlags_; + std::array, 91> accessedFeatureFlags_; std::atomic> commonTestFlag_; std::atomic> cdpInteractionMetricsEnabled_; @@ -224,7 +223,6 @@ class ReactNativeFeatureFlagsAccessor { std::atomic> useTraitHiddenOnAndroid_; std::atomic> useTurboModuleInterop_; std::atomic> useTurboModules_; - std::atomic> useUnorderedMapInDifferentiator_; std::atomic> viewCullingOutsetRatio_; std::atomic> viewTransitionEnabled_; std::atomic> viewTransitionUseHardwareBitmapAndroid_; diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index a24937f8f9c8..10861e18b1d1 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -375,10 +375,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { return false; } - bool useUnorderedMapInDifferentiator() override { - return false; - } - double viewCullingOutsetRatio() override { return 0.0; } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h index 708e504078f5..bb74c4005cff 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -828,15 +828,6 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef return ReactNativeFeatureFlagsDefaults::useTurboModules(); } - bool useUnorderedMapInDifferentiator() override { - auto value = values_["useUnorderedMapInDifferentiator"]; - if (!value.isNull()) { - return value.getBool(); - } - - return ReactNativeFeatureFlagsDefaults::useUnorderedMapInDifferentiator(); - } - double viewCullingOutsetRatio() override { auto value = values_["viewCullingOutsetRatio"]; if (!value.isNull()) { diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h index cc7a0b640452..d5c8cbf93476 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<417d41f906ec9966f937eb3e060d377b>> + * @generated SignedSource<> */ /** @@ -112,7 +112,6 @@ class ReactNativeFeatureFlagsProvider { virtual bool useTraitHiddenOnAndroid() = 0; virtual bool useTurboModuleInterop() = 0; virtual bool useTurboModules() = 0; - virtual bool useUnorderedMapInDifferentiator() = 0; virtual double viewCullingOutsetRatio() = 0; virtual bool viewTransitionEnabled() = 0; virtual bool viewTransitionUseHardwareBitmapAndroid() = 0; diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp index 0271cb8491ea..ac5e49200204 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<179ab277b9a55da3e2c5a9093269b38a>> + * @generated SignedSource<<25b6d55a33fe645cdb7f89dfd55029bd>> */ /** @@ -479,11 +479,6 @@ bool NativeReactNativeFeatureFlags::useTurboModules( return ReactNativeFeatureFlags::useTurboModules(); } -bool NativeReactNativeFeatureFlags::useUnorderedMapInDifferentiator( - jsi::Runtime& /*runtime*/) { - return ReactNativeFeatureFlags::useUnorderedMapInDifferentiator(); -} - double NativeReactNativeFeatureFlags::viewCullingOutsetRatio( jsi::Runtime& /*runtime*/) { return ReactNativeFeatureFlags::viewCullingOutsetRatio(); diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h index 37b88b894a84..99300d8ed3a2 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<98026af617f580de74cf9c0e596e8a96>> + * @generated SignedSource<<75d09b07943a292fdb9dcaea3d043700>> */ /** @@ -210,8 +210,6 @@ class NativeReactNativeFeatureFlags bool useTurboModules(jsi::Runtime& runtime); - bool useUnorderedMapInDifferentiator(jsi::Runtime& runtime); - double viewCullingOutsetRatio(jsi::Runtime& runtime); bool viewTransitionEnabled(jsi::Runtime& runtime); diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/Differentiator.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/Differentiator.cpp index 641826dbb8e0..dd89fbb89a33 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/Differentiator.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/Differentiator.cpp @@ -11,8 +11,8 @@ #include #include #include +#include #include "internal/CullingContext.h" -#include "internal/DiffMap.h" #include "internal/ShadowViewNodePair.h" #include "internal/sliceChildShadowNodeViewPairs.h" @@ -58,7 +58,9 @@ static std::ostream& operator<<( #ifdef DEBUG_LOGS_DIFFER template -static std::ostream& operator<<(std::ostream& out, DiffMap& map) { +static std::ostream& operator<<( + std::ostream& out, + const std::unordered_map& map) { auto it = map.begin(); if (it != map.end()) { out << *it->second; @@ -143,7 +145,7 @@ struct OrderedMutationInstructionContainer { static void updateMatchedPairSubtrees( ViewNodePairScope& scope, OrderedMutationInstructionContainer& mutationContainer, - DiffMap& newRemainingPairs, + std::unordered_map& newRemainingPairs, std::vector& oldChildPairs, Tag parentTag, const ShadowViewNodePair& oldPair, @@ -164,11 +166,11 @@ static void calculateShadowViewMutationsFlattener( ReparentMode reparentMode, OrderedMutationInstructionContainer& mutationContainer, Tag parentTag, - DiffMap& unvisitedOtherNodes, + std::unordered_map& unvisitedOtherNodes, const ShadowViewNodePair& node, Tag parentTagForUpdate, - DiffMap* parentSubVisitedOtherNewNodes, - DiffMap* parentSubVisitedOtherOldNodes, + std::unordered_map* parentSubVisitedOtherNewNodes, + std::unordered_map* parentSubVisitedOtherOldNodes, const CullingContext& cullingContextForUnvisitedOtherNodes, const CullingContext& cullingContext); @@ -183,7 +185,7 @@ static void calculateShadowViewMutationsFlattener( static void updateMatchedPairSubtrees( ViewNodePairScope& scope, OrderedMutationInstructionContainer& mutationContainer, - DiffMap& newRemainingPairs, + std::unordered_map& newRemainingPairs, std::vector& oldChildPairs, Tag parentTag, const ShadowViewNodePair& oldPair, @@ -239,8 +241,8 @@ static void updateMatchedPairSubtrees( // interwoven with children from other nodes, etc. auto oldFlattenedNodes = sliceChildShadowNodeViewPairsFromViewNodePair( oldPair, scope, true, oldCullingContextCopy); - auto unvisitedOldChildPairs = - DiffMap(oldFlattenedNodes.size()); + std::unordered_map unvisitedOldChildPairs; + unvisitedOldChildPairs.reserve(oldFlattenedNodes.size()); for (size_t i = 0, j = 0; i < oldChildPairs.size() && j < oldFlattenedNodes.size(); i++) { @@ -423,11 +425,11 @@ static void calculateShadowViewMutationsFlattener( ReparentMode reparentMode, OrderedMutationInstructionContainer& mutationContainer, Tag parentTag, - DiffMap& unvisitedOtherNodes, + std::unordered_map& unvisitedOtherNodes, const ShadowViewNodePair& node, Tag parentTagForUpdate, - DiffMap* parentSubVisitedOtherNewNodes, - DiffMap* parentSubVisitedOtherOldNodes, + std::unordered_map* parentSubVisitedOtherNewNodes, + std::unordered_map* parentSubVisitedOtherOldNodes, const CullingContext& cullingContextForUnvisitedOtherNodes, const CullingContext& cullingContext) { // Step 1: iterate through entire tree @@ -446,8 +448,8 @@ static void calculateShadowViewMutationsFlattener( // Views in other tree that are visited by sub-flattening or // sub-unflattening - DiffMap subVisitedOtherNewNodes{}; - DiffMap subVisitedOtherOldNodes{}; + std::unordered_map subVisitedOtherNewNodes{}; + std::unordered_map subVisitedOtherOldNodes{}; auto subVisitedNewMap = (parentSubVisitedOtherNewNodes != nullptr ? parentSubVisitedOtherNewNodes : &subVisitedOtherNewNodes); @@ -456,8 +458,9 @@ static void calculateShadowViewMutationsFlattener( : &subVisitedOtherOldNodes); // Candidates for full tree creation or deletion at the end of this function - auto deletionCreationCandidatePairs = - DiffMap(treeChildren.size()); + std::unordered_map + deletionCreationCandidatePairs; + deletionCreationCandidatePairs.reserve(treeChildren.size()); for (size_t index = 0; index < treeChildren.size() && index < treeChildren.size(); @@ -700,8 +703,9 @@ static void calculateShadowViewMutationsFlattener( ? adjustedNewCullingContext : adjustedOldCullingContext); // Construct unvisited nodes map - auto unvisitedRecursiveChildPairs = - DiffMap(flattenedNodes.size()); + std::unordered_map + unvisitedRecursiveChildPairs; + unvisitedRecursiveChildPairs.reserve(flattenedNodes.size()); for (auto& flattenedNode : flattenedNodes) { auto& newChild = *flattenedNode; @@ -1056,9 +1060,11 @@ static void calculateShadowViewMutations( // Greedy Stage 4 algorithm. // Collect map of tags in the new list auto remainingCount = newChildPairs.size() - lastIndexAfterFirstStage; - auto newRemainingPairs = DiffMap(remainingCount); - auto newInsertedPairs = DiffMap(remainingCount); - auto deletionCandidatePairs = DiffMap{}; + std::unordered_map newRemainingPairs; + newRemainingPairs.reserve(remainingCount); + std::unordered_map newInsertedPairs; + newInsertedPairs.reserve(remainingCount); + std::unordered_map deletionCandidatePairs{}; for (index = lastIndexAfterFirstStage; index < newChildPairs.size(); index++) { auto& newChildPair = *newChildPairs[index]; diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/internal/DiffMap.h b/packages/react-native/ReactCommon/react/renderer/mounting/internal/DiffMap.h deleted file mode 100644 index 14e05f685f9e..000000000000 --- a/packages/react-native/ReactCommon/react/renderer/mounting/internal/DiffMap.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#pragma once - -#include -#include -#include -#include "TinyMap.h" - -namespace facebook::react { - -/** - * A facade that delegates to either TinyMap or std::unordered_map based on - * the useUnorderedMapInDifferentiator feature flag. This allows safe rollout - * of the unordered_map change in the Differentiator. - * - * Exposes a subset of the std::unordered_map interface used by the - * Differentiator: find, insert, erase, begin, end, and range-for. - * - * The Iterator returns const references because it uses a cached copy - * internally (the two backends have different pair types). The Differentiator - * only reads through iterators, never writes. - */ -template -class DiffMap final { - public: - using Pair = std::pair; - - class Iterator { - public: - const Pair &operator*() const - { - syncCached(); - return cached_; - } - - const Pair *operator->() const - { - syncCached(); - return &cached_; - } - - Iterator &operator++() - { - if (useUnorderedMap_) { - ++umIt_; - } else { - ++tinyIt_; - } - dirty_ = true; - return *this; - } - - bool operator==(const Iterator &other) const - { - if (useUnorderedMap_) { - return umIt_ == other.umIt_; - } - return tinyIt_ == other.tinyIt_; - } - - bool operator!=(const Iterator &other) const - { - return !(*this == other); - } - - private: - friend class DiffMap; - - void syncCached() const - { - if (!dirty_) { - return; - } - if (useUnorderedMap_) { - cached_ = {umIt_->first, umIt_->second}; - } else { - cached_ = {tinyIt_->first, tinyIt_->second}; - } - dirty_ = false; - } - - bool useUnorderedMap_{false}; - typename TinyMap::Iterator tinyIt_{nullptr}; - typename std::unordered_map::iterator umIt_{}; - mutable Pair cached_{}; - mutable bool dirty_{true}; - }; - - DiffMap() : useUnorderedMap_(ReactNativeFeatureFlags::useUnorderedMapInDifferentiator()) - { - if (useUnorderedMap_) { - unorderedMap_.emplace(); - } - } - - explicit DiffMap(size_t sizeHint) : useUnorderedMap_(ReactNativeFeatureFlags::useUnorderedMapInDifferentiator()) - { - if (useUnorderedMap_) { - unorderedMap_.emplace(); - unorderedMap_->reserve(sizeHint); - } - } - - Iterator begin() - { - Iterator it; - it.useUnorderedMap_ = useUnorderedMap_; - if (useUnorderedMap_) { - it.umIt_ = unorderedMap_->begin(); - } else { - it.tinyIt_ = tinyMap_.begin(); - } - return it; - } - - Iterator end() - { - Iterator it; - it.useUnorderedMap_ = useUnorderedMap_; - if (useUnorderedMap_) { - it.umIt_ = unorderedMap_->end(); - } else { - it.tinyIt_ = tinyMap_.end(); - } - return it; - } - - Iterator find(KeyT key) - { - Iterator it; - it.useUnorderedMap_ = useUnorderedMap_; - if (useUnorderedMap_) { - it.umIt_ = unorderedMap_->find(key); - } else { - it.tinyIt_ = tinyMap_.find(key); - } - return it; - } - - void insert(Pair pair) - { - if (useUnorderedMap_) { - unorderedMap_->insert(std::move(pair)); - } else { - tinyMap_.insert(std::move(pair)); - } - } - - void erase(Iterator it) - { - if (useUnorderedMap_) { - unorderedMap_->erase(it.umIt_); - } else { - tinyMap_.erase(it.tinyIt_); - } - } - - private: - bool useUnorderedMap_; - TinyMap tinyMap_; - std::optional> unorderedMap_; -}; - -} // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/internal/TinyMap.h b/packages/react-native/ReactCommon/react/renderer/mounting/internal/TinyMap.h deleted file mode 100644 index 445071d4468e..000000000000 --- a/packages/react-native/ReactCommon/react/renderer/mounting/internal/TinyMap.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#pragma once - -#include -#include - -/* - * Extremely simple and naive implementation of a map. - * The map is simple but it's optimized for particular constraints that we have - * here. - * - * A regular map implementation (e.g. `std::unordered_map`) has some basic - * performance guarantees like constant average insertion and lookup complexity. - * This is nice, but it's *average* complexity measured on a non-trivial amount - * of data. The regular map is a very complex data structure that using hashing, - * buckets, multiple comprising operations, multiple allocations and so on. - * - * In our particular case, we need a map for `int` to `void *` with a dozen - * values. In these conditions, nothing can beat a naive implementation using a - * stack-allocated vector. And this implementation is exactly this: no - * allocation, no hashing, no complex branching, no buckets, no iterators, no - * rehashing, no other guarantees. It's crazy limited, unsafe, and performant on - * a trivial amount of data. - * - * Besides that, we also need to optimize for insertion performance (the case - * where a bunch of views appears on the screen first time); in this - * implementation, this is as performant as vector `push_back`. - */ -template -class TinyMap final { - public: - using Pair = std::pair; - using Iterator = Pair *; - - /** - * This must strictly only be called from outside of this class. - */ - inline Iterator begin() - { - // Force a clean so that iterating over this TinyMap doesn't iterate over - // erased elements. If all elements erased are at the front of the vector, - // then we don't need to clean. - cleanVector(erasedAtFront_ != numErased_); - - Iterator it = begin_(); - - if (it != nullptr) { - return it + erasedAtFront_; - } - - return nullptr; - } - - inline Iterator end() - { - // `back()` asserts on the vector being non-empty - if (vector_.empty() || numErased_ == vector_.size()) { - return nullptr; - } - - return &vector_.back() + 1; - } - - inline Iterator find(KeyT key) - { - cleanVector(); - - react_native_assert(key != 0); - - if (begin_() == nullptr) { - return end(); - } - - for (auto it = begin_() + erasedAtFront_; it != end(); it++) { - if (it->first == key) { - return it; - } - } - - return end(); - } - - inline void insert(Pair pair) - { - react_native_assert(pair.first != 0); - vector_.push_back(pair); - } - - inline void erase(Iterator iterator) - { - // Invalidate tag. - iterator->first = 0; - - if (iterator == begin_() + erasedAtFront_) { - erasedAtFront_++; - } - - numErased_++; - } - - private: - /** - * Same as begin() but doesn't call cleanVector at the beginning. - */ - inline Iterator begin_() - { - // `front()` asserts on the vector being non-empty - if (vector_.empty() || vector_.size() == numErased_) { - return nullptr; - } - - return &vector_.front(); - } - - /** - * Remove erased elements from internal vector. - * We only modify the vector if erased elements are at least half of the - * vector. - */ - inline void cleanVector(bool forceClean = false) - { - if ((numErased_ < (vector_.size() / 2) && !forceClean) || vector_.empty() || numErased_ == 0 || - numErased_ == erasedAtFront_) { - return; - } - - if (numErased_ == vector_.size()) { - vector_.clear(); - } else { - vector_.erase( - std::remove_if(vector_.begin(), vector_.end(), [](const auto &item) { return item.first == 0; }), - vector_.end()); - } - numErased_ = 0; - erasedAtFront_ = 0; - } - - std::vector vector_; - size_t numErased_{0}; - size_t erasedAtFront_{0}; -}; diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 7d86a9b4338f..dd8a7d228253 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -975,17 +975,6 @@ const definitions: FeatureFlagDefinitions = { }, ossReleaseStage: 'canary', }, - useUnorderedMapInDifferentiator: { - defaultValue: false, - metadata: { - dateAdded: '2026-02-26', - description: - 'Use std::unordered_map instead of TinyMap in the Differentiator for improved lookup performance.', - expectedReleaseValue: true, - purpose: 'experimentation', - }, - ossReleaseStage: 'none', - }, viewCullingOutsetRatio: { defaultValue: 0, metadata: { diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 7710fa8dfbd4..3460aa7e22a9 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<28f917839921b183310a5ad91bfff022>> + * @generated SignedSource<> * @flow strict * @noformat */ @@ -133,7 +133,6 @@ export type ReactNativeFeatureFlags = $ReadOnly<{ useTraitHiddenOnAndroid: Getter, useTurboModuleInterop: Getter, useTurboModules: Getter, - useUnorderedMapInDifferentiator: Getter, viewCullingOutsetRatio: Getter, viewTransitionEnabled: Getter, viewTransitionUseHardwareBitmapAndroid: Getter, @@ -547,10 +546,6 @@ export const useTurboModuleInterop: Getter = createNativeFlagGetter('us * When enabled, NativeModules will be executed by using the TurboModule system */ export const useTurboModules: Getter = createNativeFlagGetter('useTurboModules', false); -/** - * Use std::unordered_map instead of TinyMap in the Differentiator for improved lookup performance. - */ -export const useUnorderedMapInDifferentiator: Getter = createNativeFlagGetter('useUnorderedMapInDifferentiator', false); /** * Outset the culling context frame with the provided ratio. The culling context frame size will be outset by width * ratio on the left and right, and height * ratio on the top and bottom. */ diff --git a/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js index 5cd9a79cae09..0b7df049c1ff 100644 --- a/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5bed6b328143c5e4c7a7ad25e4c48536>> + * @generated SignedSource<> * @flow strict * @noformat */ @@ -112,7 +112,6 @@ export interface Spec extends TurboModule { +useTraitHiddenOnAndroid?: () => boolean; +useTurboModuleInterop?: () => boolean; +useTurboModules?: () => boolean; - +useUnorderedMapInDifferentiator?: () => boolean; +viewCullingOutsetRatio?: () => number; +viewTransitionEnabled?: () => boolean; +viewTransitionUseHardwareBitmapAndroid?: () => boolean; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 9dc4bac34d54..616bbc8656fa 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -8265,26 +8265,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index 862584bb3717..0fe525e0eb3e 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -8041,26 +8041,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index a5b82ce3c25a..466771d82707 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -8256,26 +8256,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index f6155dd49e03..c02207043170 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -10649,26 +10649,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index a0671bc25eff..2d30de88b7aa 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -10098,26 +10098,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index d0e6be7fa841..284211ee910e 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -10640,26 +10640,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index 3914705ee83b..e2bd54e19ce6 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -6349,26 +6349,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index 5988479bbd9d..330361965271 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -6189,26 +6189,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index c294e79f1ee6..03e1e98f0d86 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -6340,26 +6340,6 @@ class facebook::react::SimpleThreadSafeCache { public std::pair getWithKey(const KeyT& key, facebook::react::CacheGeneratorFunction auto generator) const; } -template -class facebook::react::DiffMap { - public DiffMap(); - public DiffMap(size_t sizeHint); - public facebook::react::DiffMap::Iterator begin(); - public facebook::react::DiffMap::Iterator end(); - public facebook::react::DiffMap::Iterator find(KeyT key); - public using Pair = std::pair; - public void erase(facebook::react::DiffMap::Iterator it); - public void insert(facebook::react::DiffMap::Pair pair); -} - -class facebook::react::DiffMap::Iterator { - public bool operator!=(const facebook::react::DiffMap::Iterator& other) const; - public bool operator==(const facebook::react::DiffMap::Iterator& other) const; - public const facebook::react::DiffMap::Pair& operator*() const; - public const facebook::react::DiffMap::Pair* operator->() const; - public facebook::react::DiffMap::Iterator& operator++(); -} - template class facebook::react::OnScopeExit { public OnScopeExit(const Lambda&& lambda) noexcept; diff --git a/scripts/cxx-api/config.yml b/scripts/cxx-api/config.yml index b8f38e078a44..1a4e90747cd6 100644 --- a/scripts/cxx-api/config.yml +++ b/scripts/cxx-api/config.yml @@ -14,7 +14,6 @@ exclude_symbols: - "(?i)experimental" - "unstable_" - "UnstableLegacy" - - "TinyMap" - "packAnimatedProps" - "DO_NOT_USE" - "_DEPRECATED|DEPRECATED_"