react-native-windows 0.68.1 → 0.69.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/CreateModules.h +4 -0
- package/Shared/DevSupportManager.cpp +34 -33
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +198 -0
- package/Shared/Modules/HttpModule.h +53 -0
- package/Shared/Modules/WebSocketModule.cpp +5 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/Networking/IHttpResource.h +53 -0
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/Networking/WinRTHttpResource.cpp +347 -0
- package/Shared/Networking/WinRTHttpResource.h +67 -0
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +37 -11
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +126 -5
- package/Shared/Shared.vcxitems.filters +55 -15
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/Utils/WinRTConversions.cpp +22 -0
- package/Shared/Utils/WinRTConversions.h +15 -0
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/IHttpResource.h +0 -34
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -70,7 +70,7 @@ struct IFuture : IUnknown {
|
|
|
70
70
|
virtual void AddContinuation(Mso::CntPtr<IFuture> &&continuation) noexcept = 0;
|
|
71
71
|
|
|
72
72
|
_Success_(
|
|
73
|
-
return
|
|
73
|
+
return) virtual bool TryStartSetValue(_Out_ ByteArrayView &valueBuffer, bool crashIfFailed = false) noexcept = 0;
|
|
74
74
|
virtual void Post() noexcept = 0;
|
|
75
75
|
virtual void StartAwaiting() noexcept = 0;
|
|
76
76
|
virtual bool TrySetSuccess(bool crashIfFailed = false) noexcept = 0;
|
|
@@ -81,7 +81,7 @@ struct IFuture : IUnknown {
|
|
|
81
81
|
virtual bool IsFailed() const noexcept = 0;
|
|
82
82
|
|
|
83
83
|
template <class T, class... TArgs>
|
|
84
|
-
void SetValue(TArgs &&...
|
|
84
|
+
void SetValue(TArgs &&...args) noexcept {
|
|
85
85
|
ByteArrayView valueBuffer;
|
|
86
86
|
(void)TryStartSetValue(/*ref*/ valueBuffer, /*crashIfFailed:*/ true);
|
|
87
87
|
::new (valueBuffer.VoidDataChecked(sizeof(T))) T(std::forward<TArgs>(args)...);
|
|
@@ -89,7 +89,7 @@ struct IFuture : IUnknown {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
template <class T, class... TArgs>
|
|
92
|
-
bool TrySetValue(TArgs &&...
|
|
92
|
+
bool TrySetValue(TArgs &&...args) noexcept {
|
|
93
93
|
ByteArrayView valueBuffer;
|
|
94
94
|
if (TryStartSetValue(/*ref*/ valueBuffer)) {
|
|
95
95
|
::new (valueBuffer.VoidDataChecked(sizeof(T))) T(std::forward<TArgs>(args)...);
|
|
@@ -15,7 +15,7 @@ namespace Mso::Futures {
|
|
|
15
15
|
template <class TResult, bool isNoExcept>
|
|
16
16
|
struct MaybeInvoker {
|
|
17
17
|
template <class TCallback, class... TArgs>
|
|
18
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
18
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
19
19
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
20
20
|
try {
|
|
21
21
|
return Mso::Maybe<TResult>(callback(std::forward<TArgs>(args)...));
|
|
@@ -29,7 +29,7 @@ struct MaybeInvoker {
|
|
|
29
29
|
template <class TResult>
|
|
30
30
|
struct MaybeInvoker<TResult, /*isNoExcept:*/ true> {
|
|
31
31
|
template <class TCallback, class... TArgs>
|
|
32
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
32
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
33
33
|
return Mso::Maybe<TResult>(callback(std::forward<TArgs>(args)...));
|
|
34
34
|
}
|
|
35
35
|
};
|
|
@@ -38,7 +38,7 @@ struct MaybeInvoker<TResult, /*isNoExcept:*/ true> {
|
|
|
38
38
|
template <>
|
|
39
39
|
struct MaybeInvoker<void, /*isNoExcept:*/ false> {
|
|
40
40
|
template <class TCallback, class... TArgs>
|
|
41
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
41
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
42
42
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
43
43
|
try {
|
|
44
44
|
callback(std::forward<TArgs>(args)...);
|
|
@@ -53,7 +53,7 @@ struct MaybeInvoker<void, /*isNoExcept:*/ false> {
|
|
|
53
53
|
template <>
|
|
54
54
|
struct MaybeInvoker<void, /*isNoExcept:*/ true> {
|
|
55
55
|
template <class TCallback, class... TArgs>
|
|
56
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
56
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
57
57
|
callback(std::forward<TArgs>(args)...);
|
|
58
58
|
return Mso::Maybe<void>();
|
|
59
59
|
}
|
|
@@ -63,7 +63,7 @@ struct MaybeInvoker<void, /*isNoExcept:*/ true> {
|
|
|
63
63
|
template <class T>
|
|
64
64
|
struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ false> {
|
|
65
65
|
template <class TCallback, class... TArgs>
|
|
66
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
66
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
67
67
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
68
68
|
try {
|
|
69
69
|
return callback(std::forward<TArgs>(args)...);
|
|
@@ -77,7 +77,7 @@ struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ false> {
|
|
|
77
77
|
template <class T>
|
|
78
78
|
struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ true> {
|
|
79
79
|
template <class TCallback, class... TArgs>
|
|
80
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
80
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
81
81
|
return callback(std::forward<TArgs>(args)...);
|
|
82
82
|
}
|
|
83
83
|
};
|
|
@@ -103,28 +103,28 @@ inline bool PromiseGroup<T>::TrySetValue(T &&value) const noexcept {
|
|
|
103
103
|
|
|
104
104
|
template <class T>
|
|
105
105
|
template <class... TArgs>
|
|
106
|
-
inline void PromiseGroup<T>::EmplaceValue(TArgs &&...
|
|
106
|
+
inline void PromiseGroup<T>::EmplaceValue(TArgs &&...args) const noexcept {
|
|
107
107
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40b /* tag_bunql */);
|
|
108
108
|
m_state->SetValue<T>(std::forward<TArgs>(args)...);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
template <class T>
|
|
112
112
|
template <class TArg, class... TArgs>
|
|
113
|
-
inline void PromiseGroup<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
113
|
+
inline void PromiseGroup<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
114
114
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40c /* tag_bunqm */);
|
|
115
115
|
m_state->SetValue<T>(init, std::forward<TArgs>(args)...);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
template <class T>
|
|
119
119
|
template <class... TArgs>
|
|
120
|
-
inline bool PromiseGroup<T>::TryEmplaceValue(TArgs &&...
|
|
120
|
+
inline bool PromiseGroup<T>::TryEmplaceValue(TArgs &&...args) const noexcept {
|
|
121
121
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40d /* tag_bunqn */);
|
|
122
122
|
return m_state->TrySetValue<T>(std::forward<TArgs>(args)...);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
template <class T>
|
|
126
126
|
template <class TArg, class... TArgs>
|
|
127
|
-
inline bool PromiseGroup<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
127
|
+
inline bool PromiseGroup<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
128
128
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40e /* tag_bunqo */);
|
|
129
129
|
return m_state->TrySetValue<T>(init, std::forward<TArgs>(args)...);
|
|
130
130
|
}
|
|
@@ -132,28 +132,28 @@ inline bool Promise<T>::TrySetValue(Mso::Maybe<T> &&value) const noexcept {
|
|
|
132
132
|
|
|
133
133
|
template <class T>
|
|
134
134
|
template <class... TArgs>
|
|
135
|
-
inline void Promise<T>::EmplaceValue(TArgs &&...
|
|
135
|
+
inline void Promise<T>::EmplaceValue(TArgs &&...args) const noexcept {
|
|
136
136
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x012ca405 /* tag_blkqf */);
|
|
137
137
|
this->m_state->template SetValue<T>(std::forward<TArgs>(args)...);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
template <class T>
|
|
141
141
|
template <class TArg, class... TArgs>
|
|
142
|
-
inline void Promise<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
142
|
+
inline void Promise<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
143
143
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x016056ce /* tag_byf1o */);
|
|
144
144
|
m_state->SetValue<T>(init, std::forward<TArgs>(args)...);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
template <class T>
|
|
148
148
|
template <class... TArgs>
|
|
149
|
-
inline bool Promise<T>::TryEmplaceValue(TArgs &&...
|
|
149
|
+
inline bool Promise<T>::TryEmplaceValue(TArgs &&...args) const noexcept {
|
|
150
150
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x012ca406 /* tag_blkqg */);
|
|
151
151
|
return m_state->TrySetValue<T>(std::forward<TArgs>(args)...);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
template <class T>
|
|
155
155
|
template <class TArg, class... TArgs>
|
|
156
|
-
inline bool Promise<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
156
|
+
inline bool Promise<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
157
157
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x016056cf /* tag_byf1p */);
|
|
158
158
|
return m_state->TrySetValue<T>(init, std::forward<TArgs>(args)...);
|
|
159
159
|
}
|
|
@@ -75,8 +75,8 @@ template <class TFutureValue, class TExecutor, class TCallback>
|
|
|
75
75
|
struct GetResultTraits<TFutureValue, TExecutor, TCallback, CallbackArgKind::Maybe> {
|
|
76
76
|
using Type = ResultTraits<
|
|
77
77
|
TFutureValue,
|
|
78
|
-
decltype(
|
|
79
|
-
|
|
78
|
+
decltype(std::declval<TExecutor>()
|
|
79
|
+
.Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &&>()))>;
|
|
80
80
|
static_assert(
|
|
81
81
|
noexcept(
|
|
82
82
|
std::declval<TExecutor>().Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &&>())),
|
|
@@ -87,8 +87,8 @@ template <class TFutureValue, class TExecutor, class TCallback>
|
|
|
87
87
|
struct GetResultTraits<TFutureValue, TExecutor, TCallback, CallbackArgKind::MaybeRef> {
|
|
88
88
|
using Type = ResultTraits<
|
|
89
89
|
TFutureValue,
|
|
90
|
-
decltype(
|
|
91
|
-
|
|
90
|
+
decltype(std::declval<TExecutor>()
|
|
91
|
+
.Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &>()))>;
|
|
92
92
|
static_assert(
|
|
93
93
|
noexcept(std::declval<TExecutor>().Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &>())),
|
|
94
94
|
"Executor's Invoke method must not throw");
|
|
@@ -289,7 +289,7 @@ inline Future<void> WhenAll(Future<void> (&futures)[size]) noexcept {
|
|
|
289
289
|
}
|
|
290
290
|
|
|
291
291
|
template <class T0, class... Ts>
|
|
292
|
-
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...
|
|
292
|
+
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...futures) noexcept {
|
|
293
293
|
using ResultType = std::tuple<T0, Ts...>;
|
|
294
294
|
using TaskType = Mso::Futures::WhenAllFutureTask<void>;
|
|
295
295
|
const size_t taskSize = TaskType::GetTaskSize(1 + sizeof...(Ts));
|
package/Mso/future/future.h
CHANGED
|
@@ -86,11 +86,11 @@ Future<void> MakeCompletedFuture() noexcept;
|
|
|
86
86
|
|
|
87
87
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
88
88
|
template <class T, class... TArgs>
|
|
89
|
-
Future<T> MakeCompletedFutureEmplaced(TArgs &&...
|
|
89
|
+
Future<T> MakeCompletedFutureEmplaced(TArgs &&...args) noexcept;
|
|
90
90
|
|
|
91
91
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
92
92
|
template <class T, class U, class... TArgs>
|
|
93
|
-
Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
93
|
+
Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept;
|
|
94
94
|
|
|
95
95
|
//! Create an instance of succeeded Mso::Future<T> from a provided value.
|
|
96
96
|
template <class T>
|
|
@@ -101,11 +101,11 @@ Future<void> MakeSucceededFuture() noexcept;
|
|
|
101
101
|
|
|
102
102
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
103
103
|
template <class T, class... TArgs>
|
|
104
|
-
Future<T> MakeSucceededFutureEmplaced(TArgs &&...
|
|
104
|
+
Future<T> MakeSucceededFutureEmplaced(TArgs &&...args) noexcept;
|
|
105
105
|
|
|
106
106
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
107
107
|
template <class T, class U, class... TArgs>
|
|
108
|
-
Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
108
|
+
Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept;
|
|
109
109
|
|
|
110
110
|
//! Create an instance of Mso::Future<T> with error code.
|
|
111
111
|
template <class T>
|
|
@@ -169,7 +169,7 @@ LIBLET_PUBLICAPI Future<void> WhenAll(const std::vector<Future<void>> &futures)
|
|
|
169
169
|
//! Each future may have its own return type.
|
|
170
170
|
//! Returns Future<std::tuple<Ts...>>.
|
|
171
171
|
template <class T0, class... Ts>
|
|
172
|
-
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...
|
|
172
|
+
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...futures) noexcept;
|
|
173
173
|
|
|
174
174
|
//=============================================================================
|
|
175
175
|
// Mso::WhenAny overloads.
|
|
@@ -315,19 +315,19 @@ struct Promise {
|
|
|
315
315
|
|
|
316
316
|
/// Sets the value in-place and completes the Promise. It can be called only once. Otherwise it crashes the app.
|
|
317
317
|
template <class... TArgs>
|
|
318
|
-
void EmplaceValue(TArgs &&...
|
|
318
|
+
void EmplaceValue(TArgs &&...args) const noexcept;
|
|
319
319
|
|
|
320
320
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
321
321
|
template <class TArg, class... TArgs>
|
|
322
|
-
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
322
|
+
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
323
323
|
|
|
324
324
|
/// Tries to set the value in-place if Promise is not completed or abandoned yet. Returns true on success.
|
|
325
325
|
template <class... TArgs>
|
|
326
|
-
bool TryEmplaceValue(TArgs &&...
|
|
326
|
+
bool TryEmplaceValue(TArgs &&...args) const noexcept;
|
|
327
327
|
|
|
328
328
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
329
329
|
template <class TArg, class... TArgs>
|
|
330
|
-
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
330
|
+
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
331
331
|
|
|
332
332
|
/// Tries to set Promise to Failed state with a CancellationError. Returns true if cancel succeeded.
|
|
333
333
|
bool TryCancel() const noexcept;
|
|
@@ -809,19 +809,19 @@ struct PromiseGroup {
|
|
|
809
809
|
|
|
810
810
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
811
811
|
template <class... TArgs>
|
|
812
|
-
void EmplaceValue(TArgs &&...
|
|
812
|
+
void EmplaceValue(TArgs &&...args) const noexcept;
|
|
813
813
|
|
|
814
814
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
815
815
|
template <class TArg, class... TArgs>
|
|
816
|
-
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
816
|
+
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
817
817
|
|
|
818
818
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
819
819
|
template <class... TArgs>
|
|
820
|
-
bool TryEmplaceValue(TArgs &&...
|
|
820
|
+
bool TryEmplaceValue(TArgs &&...args) const noexcept;
|
|
821
821
|
|
|
822
822
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
823
823
|
template <class TArg, class... TArgs>
|
|
824
|
-
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
824
|
+
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
825
825
|
|
|
826
826
|
/// Tries to set Promise to Failed state with the provided error code. It crashes app if error code cannot be set.
|
|
827
827
|
void SetError(const ErrorCode &errorCode) const noexcept;
|
|
@@ -16,7 +16,7 @@ See the msoGuid.h for the usage guidelines.
|
|
|
16
16
|
#endif
|
|
17
17
|
|
|
18
18
|
// Clang compiler must target C++11 or up to support MSO*GUIDs because we rely on constexpr.
|
|
19
|
-
|
|
19
|
+
// #if (__cplusplus >= 201103L) && !defined(MSO_GUID_DISABLED)
|
|
20
20
|
|
|
21
21
|
#include "compilerAdapters/compilerFeatures.h"
|
|
22
22
|
#if MS_TARGET_POSIX
|
|
@@ -30,7 +30,7 @@ namespace Details {
|
|
|
30
30
|
template <typename T>
|
|
31
31
|
struct Emplacer {
|
|
32
32
|
template <typename... Args>
|
|
33
|
-
static void Place(_Inout_updates_bytes_all_(sizeof(T)) void *mem, Args &&...
|
|
33
|
+
static void Place(_Inout_updates_bytes_all_(sizeof(T)) void *mem, Args &&...args) noexcept {
|
|
34
34
|
new (mem) T(std::forward<Args>(args)...);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
@@ -38,7 +38,7 @@ struct Emplacer {
|
|
|
38
38
|
template <typename T, size_t N>
|
|
39
39
|
struct Emplacer<T[N]> {
|
|
40
40
|
template <typename... Args>
|
|
41
|
-
static void Place(void *mem, Args &&...
|
|
41
|
+
static void Place(void *mem, Args &&...args) {
|
|
42
42
|
new (mem) T[N]{std::forward<Args>(args)...};
|
|
43
43
|
}
|
|
44
44
|
};
|
|
@@ -116,14 +116,18 @@ Disambiguator used to ensure a throwing new
|
|
|
116
116
|
new (Mso::Memory::throwNew) Zoo();
|
|
117
117
|
*/
|
|
118
118
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
119
|
-
static const struct throwNew_t {
|
|
119
|
+
static const struct throwNew_t {
|
|
120
|
+
throwNew_t() noexcept = default;
|
|
121
|
+
} throwNew;
|
|
120
122
|
|
|
121
123
|
/**
|
|
122
124
|
Disambiguator used to ensure a crashing new
|
|
123
125
|
new (Mso::Memory::failFast) Zoo();
|
|
124
126
|
*/
|
|
125
127
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
126
|
-
static const struct failFast_t {
|
|
128
|
+
static const struct failFast_t {
|
|
129
|
+
failFast_t() noexcept = default;
|
|
130
|
+
} failFast;
|
|
127
131
|
|
|
128
132
|
/**
|
|
129
133
|
Construct a object of type `T` stored at `mem`.
|
|
@@ -131,7 +135,7 @@ Construct a object of type `T` stored at `mem`.
|
|
|
131
135
|
Arguments are forwarded to constructor of `T`.
|
|
132
136
|
*/
|
|
133
137
|
template <typename T, typename... Args>
|
|
134
|
-
static void Place(__inout_bcount(sizeof(T)) void *mem, Args &&...
|
|
138
|
+
static void Place(__inout_bcount(sizeof(T)) void *mem, Args &&...args) {
|
|
135
139
|
Details::Emplacer<T>::Place(mem, std::forward<Args>(args)...);
|
|
136
140
|
}
|
|
137
141
|
|
|
@@ -187,7 +191,9 @@ namespace NoThrow {
|
|
|
187
191
|
new (Mso::Memory::NoThrow::MarkingLeak) Zoo();
|
|
188
192
|
*/
|
|
189
193
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
190
|
-
static const struct MarkingLeak_t {
|
|
194
|
+
static const struct MarkingLeak_t {
|
|
195
|
+
MarkingLeak_t() noexcept = default;
|
|
196
|
+
} MarkingLeak;
|
|
191
197
|
|
|
192
198
|
} // namespace NoThrow
|
|
193
199
|
} // namespace Memory
|
|
@@ -205,7 +211,7 @@ Allocates object T by passing args to its constructor.
|
|
|
205
211
|
*/
|
|
206
212
|
template <typename T, typename... TArgs>
|
|
207
213
|
OACR_WARNING_SUPPRESS(NULL_ON_NON_POINTER, "false positive")
|
|
208
|
-
_Ret_notnull_ T *New(TArgs &&...
|
|
214
|
+
_Ret_notnull_ T *New(TArgs &&...t) {
|
|
209
215
|
Debug(Mso::Memory::AutoShutdownLeakScope scope);
|
|
210
216
|
T *pT = new (std::nothrow) T(std::forward<TArgs>(t)...);
|
|
211
217
|
if (pT == nullptr)
|
|
@@ -32,7 +32,7 @@ struct GTestFixture : ::testing::Test {
|
|
|
32
32
|
std::unique_ptr<TestClass> m_test;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
template <int &...
|
|
35
|
+
template <int &...ExplicitParameterBarrier, typename Factory>
|
|
36
36
|
inline auto RegisterTest(
|
|
37
37
|
const char *test_suite_name,
|
|
38
38
|
const char *test_name,
|
package/Mso/motifCpp/testInfo.h
CHANGED
|
@@ -31,15 +31,13 @@
|
|
|
31
31
|
\
|
|
32
32
|
struct className : Mso::UnitTests::Internal::TestClassBase<className, TestClassInfo_##className>
|
|
33
33
|
|
|
34
|
-
#define TEST_METHOD(methodName)
|
|
35
|
-
struct TestMethodInfo_##methodName final
|
|
36
|
-
: Mso::UnitTests::Internal::TestMethodInfoReg<TestMethodInfo_##methodName> {
|
|
37
|
-
TestMethodInfo_##methodName() : TestMethodInfoRegType{TestClassInfoType::Instance, #methodName, __LINE__} {}
|
|
38
|
-
|
|
39
|
-
void Invoke(Mso::UnitTests::TestClass &test) const override {
|
|
40
|
-
|
|
41
|
-
} \
|
|
42
|
-
}; \
|
|
34
|
+
#define TEST_METHOD(methodName) \
|
|
35
|
+
struct TestMethodInfo_##methodName final \
|
|
36
|
+
: Mso::UnitTests::Internal::TestMethodInfoReg<TestMethodInfo_##methodName> { \
|
|
37
|
+
TestMethodInfo_##methodName() : TestMethodInfoRegType{TestClassInfoType::Instance, #methodName, __LINE__} {} \
|
|
38
|
+
\
|
|
39
|
+
void Invoke(Mso::UnitTests::TestClass &test) const override { static_cast<TestClassType &>(test).methodName(); } \
|
|
40
|
+
}; \
|
|
43
41
|
virtual void methodName()
|
|
44
42
|
|
|
45
43
|
#define TESTMETHOD_REQUIRES_SEH(methodName) TEST_METHOD(methodName)
|
package/Mso/object/make.h
CHANGED
|
@@ -23,7 +23,7 @@ namespace Mso {
|
|
|
23
23
|
// ValidateObject throws, or when some of the lambda's are inlined...
|
|
24
24
|
|
|
25
25
|
template <typename T, typename TResult = T, typename... TArgs>
|
|
26
|
-
inline Mso::CntPtr<TResult> Make(TArgs &&...
|
|
26
|
+
inline Mso::CntPtr<TResult> Make(TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
27
27
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
28
28
|
T::RefCountPolicy::AllocateMemory(memoryGuard);
|
|
29
29
|
VerifyAllocElseCrashTag(memoryGuard.ObjMemory, 0x01117748 /* tag_bex3i */);
|
|
@@ -47,7 +47,7 @@ inline Mso::CntPtr<TResult> Make(TArgs &&... args) noexcept(T::MakePolicy::IsNoE
|
|
|
47
47
|
Method MakeAlloc is noexcept depending on the Make policy IsNoExcept value.
|
|
48
48
|
*/
|
|
49
49
|
template <typename T, typename TResult = T, typename TAllocArg, typename... TArgs>
|
|
50
|
-
inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&...
|
|
50
|
+
inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
51
51
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
52
52
|
T::RefCountPolicy::AllocateMemory(memoryGuard, std::forward<TAllocArg>(allocArg));
|
|
53
53
|
VerifyAllocElseCrashTag(memoryGuard.ObjMemory, 0x01117749 /* tag_bex3j */);
|
|
@@ -70,7 +70,7 @@ inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&... args) no
|
|
|
70
70
|
Method MakeElseNull is noexcept depending on the Make policy IsNoExcept value.
|
|
71
71
|
*/
|
|
72
72
|
template <typename T, typename TResult = T, typename... TArgs>
|
|
73
|
-
inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&...
|
|
73
|
+
inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
74
74
|
Mso::CntPtr<TResult> result; // Hopefully we can benefit from NRVO
|
|
75
75
|
|
|
76
76
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
@@ -98,7 +98,7 @@ inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&... args) noexcept(T::MakePolic
|
|
|
98
98
|
Method MakeAllocElseNull is noexcept depending on the Make policy IsNoExcept value.
|
|
99
99
|
*/
|
|
100
100
|
template <typename T, typename TResult = T, typename TAllocArg, typename... TArgs>
|
|
101
|
-
inline Mso::CntPtr<TResult> MakeAllocElseNull(TAllocArg &&allocArg, TArgs &&...
|
|
101
|
+
inline Mso::CntPtr<TResult> MakeAllocElseNull(TAllocArg &&allocArg, TArgs &&...args) noexcept(
|
|
102
102
|
T::MakePolicy::IsNoExcept) {
|
|
103
103
|
Mso::CntPtr<TResult> result; // Hopefully we can benefit from NRVO
|
|
104
104
|
|
|
@@ -125,7 +125,7 @@ struct ThrowCtor {
|
|
|
125
125
|
static const bool IsNoExcept = false;
|
|
126
126
|
|
|
127
127
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
128
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
128
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) {
|
|
129
129
|
OACR_POSSIBLE_THROW;
|
|
130
130
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T(std::forward<TArgs>(args)...);
|
|
131
131
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
@@ -139,7 +139,7 @@ struct NoThrowCtor {
|
|
|
139
139
|
static const bool IsNoExcept = true;
|
|
140
140
|
|
|
141
141
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
142
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
142
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
|
|
143
143
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T(std::forward<TArgs>(args)...);
|
|
144
144
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
145
145
|
}
|
|
@@ -152,7 +152,7 @@ struct ThrowCtorAndInitializeThis {
|
|
|
152
152
|
static const bool IsNoExcept = false;
|
|
153
153
|
|
|
154
154
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
155
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
155
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) {
|
|
156
156
|
OACR_POSSIBLE_THROW;
|
|
157
157
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T();
|
|
158
158
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
@@ -167,7 +167,7 @@ struct NoThrowCtorAndInitializeThis {
|
|
|
167
167
|
static const bool IsNoExcept = true;
|
|
168
168
|
|
|
169
169
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
170
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
170
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
|
|
171
171
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T();
|
|
172
172
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
173
173
|
memoryGuard.Obj->InitializeThis(std::forward<TArgs>(args)...);
|
|
@@ -18,9 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
#define MSO_OBJECT_SIMPLEREFCOUNT(TObject) \
|
|
20
20
|
public: \
|
|
21
|
-
bool IsUniqueRef() const noexcept {
|
|
22
|
-
return m_refCount.load(std::memory_order_acquire) == 1; \
|
|
23
|
-
} \
|
|
21
|
+
bool IsUniqueRef() const noexcept { return m_refCount.load(std::memory_order_acquire) == 1; } \
|
|
24
22
|
Debug(uint32_t RefCount() const noexcept { return m_refCount.load(std::memory_order_acquire); }) \
|
|
25
23
|
\
|
|
26
24
|
template <typename UseMsoMakeInsteadOfOperatorNew> \
|
|
@@ -169,7 +167,7 @@ class RefCountedWrapper : public RefCountedWrapperBase, public T {
|
|
|
169
167
|
using MakePolicy = Mso::MakePolicy::ThrowCtor;
|
|
170
168
|
|
|
171
169
|
template <typename... U>
|
|
172
|
-
RefCountedWrapper(U &&...
|
|
170
|
+
RefCountedWrapper(U &&...args) noexcept : T(std::forward<U>(args)...) {}
|
|
173
171
|
};
|
|
174
172
|
|
|
175
173
|
/**
|
|
@@ -193,7 +191,7 @@ template <typename T>
|
|
|
193
191
|
using RefCountedPtr = Mso::CntPtr<RefCountedWrapper<T>>;
|
|
194
192
|
|
|
195
193
|
template <typename T, typename... U>
|
|
196
|
-
RefCountedPtr<T> Make_RefCounted(U &&...
|
|
194
|
+
RefCountedPtr<T> Make_RefCounted(U &&...args) noexcept {
|
|
197
195
|
return Mso::Make<RefCountedWrapper<T>>(std::forward<U>(args)...);
|
|
198
196
|
}
|
|
199
197
|
|
|
@@ -65,18 +65,14 @@
|
|
|
65
65
|
// CntPtr and get a pointer to the ObjectWeakRef using the base ObjectWithWeakRef class.
|
|
66
66
|
//
|
|
67
67
|
|
|
68
|
-
#define MSO_OBJECT_WEAKREFCOUNT(TObject)
|
|
69
|
-
public:
|
|
70
|
-
Mso::ObjectWeakRef &GetWeakRef() const noexcept {
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Debug(uint32_t RefCount() const noexcept { return GetWeakRef().RefCount(); }) \
|
|
77
|
-
\
|
|
78
|
-
template <typename UseMsoMakeInsteadOfOperatorNew> \
|
|
79
|
-
void *operator new(size_t, UseMsoMakeInsteadOfOperatorNew * = nullptr); \
|
|
68
|
+
#define MSO_OBJECT_WEAKREFCOUNT(TObject) \
|
|
69
|
+
public: \
|
|
70
|
+
Mso::ObjectWeakRef &GetWeakRef() const noexcept { return *Mso::Details::GetWeakRef(this); } \
|
|
71
|
+
bool IsUniqueRef() const noexcept { return GetWeakRef().IsUniqueRef(); } \
|
|
72
|
+
Debug(uint32_t RefCount() const noexcept { return GetWeakRef().RefCount(); }) \
|
|
73
|
+
\
|
|
74
|
+
template <typename UseMsoMakeInsteadOfOperatorNew> \
|
|
75
|
+
void *operator new(size_t, UseMsoMakeInsteadOfOperatorNew * = nullptr); \
|
|
80
76
|
MSO_NO_COPY_CTOR_AND_ASSIGNMENT(TObject)
|
|
81
77
|
|
|
82
78
|
namespace Mso {
|
|
@@ -315,7 +311,7 @@ template <
|
|
|
315
311
|
typename TResult = T,
|
|
316
312
|
typename TContainer = ObjectWeakRefContainer<T, ObjectWeakRef>,
|
|
317
313
|
typename... TArgs>
|
|
318
|
-
inline Mso::CntPtr<TResult> MakeWeakRefObject(TArgs &&...
|
|
314
|
+
inline Mso::CntPtr<TResult> MakeWeakRefObject(TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
319
315
|
typename T::RefCountPolicy::template MemoryGuard<T, TContainer> memoryGuard = {};
|
|
320
316
|
T::RefCountPolicy::AllocateMemory(memoryGuard);
|
|
321
317
|
VerifyAllocElseCrashTag(memoryGuard.ObjMemory, 0x0111774a /* tag_bex3k */);
|
|
@@ -344,7 +340,7 @@ template <
|
|
|
344
340
|
typename TContainer = ObjectWeakRefContainer<T, ObjectWeakRef>,
|
|
345
341
|
typename TAllocArg,
|
|
346
342
|
typename... TArgs>
|
|
347
|
-
inline Mso::CntPtr<TResult> MakeAllocWeakRefObject(TAllocArg &&allocArg, TArgs &&...
|
|
343
|
+
inline Mso::CntPtr<TResult> MakeAllocWeakRefObject(TAllocArg &&allocArg, TArgs &&...args) noexcept(
|
|
348
344
|
T::MakePolicy::IsNoExcept) {
|
|
349
345
|
typename T::RefCountPolicy::template MemoryGuard<T, TContainer> memoryGuard = {};
|
|
350
346
|
T::RefCountPolicy::AllocateMemory(memoryGuard, std::forward<TAllocArg>(allocArg));
|
package/Mso/object/queryCast.h
CHANGED
|
@@ -159,7 +159,7 @@ class DECLSPEC_NOVTABLE QueryCastChain : public T {
|
|
|
159
159
|
|
|
160
160
|
protected:
|
|
161
161
|
template <typename... TArgs>
|
|
162
|
-
QueryCastChain(TArgs &&...
|
|
162
|
+
QueryCastChain(TArgs &&...args) noexcept : T(std::forward<TArgs>(args)...) {}
|
|
163
163
|
|
|
164
164
|
private:
|
|
165
165
|
// Recursively calls itself while we have two or more base types.
|
|
@@ -205,7 +205,7 @@ class DECLSPEC_NOVTABLE QueryCastGuid : public T {
|
|
|
205
205
|
|
|
206
206
|
protected:
|
|
207
207
|
template <typename... TArgs>
|
|
208
|
-
QueryCastGuid(TArgs &&...
|
|
208
|
+
QueryCastGuid(TArgs &&...args) noexcept : T(std::forward<TArgs>(args)...) {}
|
|
209
209
|
};
|
|
210
210
|
|
|
211
211
|
/// Implements the QueryCast that does not do any query cast for a type.
|
|
@@ -221,7 +221,7 @@ class DECLSPEC_NOVTABLE QueryCastHidden : public T {
|
|
|
221
221
|
|
|
222
222
|
protected:
|
|
223
223
|
template <typename... TArgs>
|
|
224
|
-
QueryCastHidden(TArgs &&...
|
|
224
|
+
QueryCastHidden(TArgs &&...args) noexcept : T(std::forward<TArgs>(args)...) {}
|
|
225
225
|
};
|
|
226
226
|
|
|
227
227
|
/// Delegates the QueryCast implementation to the list of the base types.
|
|
@@ -235,7 +235,7 @@ class DECLSPEC_NOVTABLE QueryCastList : public TBase0, public TBases... {
|
|
|
235
235
|
|
|
236
236
|
protected:
|
|
237
237
|
template <typename... TArgs>
|
|
238
|
-
QueryCastList(TArgs &&...
|
|
238
|
+
QueryCastList(TArgs &&...args) noexcept : TBase0(std::forward<TArgs>(args)...) {}
|
|
239
239
|
|
|
240
240
|
public:
|
|
241
241
|
void *QueryCast(const GUID &riid) noexcept {
|
|
@@ -313,7 +313,7 @@ class RefCountedObject : public TBaseType0, public TBaseTypes... {
|
|
|
313
313
|
|
|
314
314
|
protected:
|
|
315
315
|
template <typename... TArgs>
|
|
316
|
-
RefCountedObject(TArgs &&...
|
|
316
|
+
RefCountedObject(TArgs &&...args) noexcept : TBaseType0(std::forward<TArgs>(args)...) {}
|
|
317
317
|
|
|
318
318
|
virtual ~RefCountedObject() = default;
|
|
319
319
|
|
|
@@ -351,7 +351,7 @@ class RefCountedObject<Mso::SimpleRefCountPolicy<TDeleter, TAllocator>, TBaseTyp
|
|
|
351
351
|
|
|
352
352
|
protected:
|
|
353
353
|
template <typename... TArgs>
|
|
354
|
-
RefCountedObject(TArgs &&...
|
|
354
|
+
RefCountedObject(TArgs &&...args) noexcept : TBaseType0(std::forward<TArgs>(args)...) {}
|
|
355
355
|
|
|
356
356
|
virtual ~RefCountedObject() = default;
|
|
357
357
|
|
|
@@ -382,7 +382,7 @@ class RefCountedObject<Mso::WeakRefCountPolicy<TDeleter, TAllocator>, TBaseType0
|
|
|
382
382
|
|
|
383
383
|
protected:
|
|
384
384
|
template <typename... TArgs>
|
|
385
|
-
RefCountedObject(TArgs &&...
|
|
385
|
+
RefCountedObject(TArgs &&...args) noexcept : TBaseType0(std::forward<TArgs>(args)...) {}
|
|
386
386
|
|
|
387
387
|
virtual ~RefCountedObject() = default;
|
|
388
388
|
};
|
|
@@ -396,7 +396,7 @@ class RefCountedObject<Mso::RefCountStrategy::NoRefCount, TBaseType0, TBaseTypes
|
|
|
396
396
|
MSO_OBJECT_NOREFCOUNT(RefCountedObject);
|
|
397
397
|
|
|
398
398
|
template <typename... TArgs>
|
|
399
|
-
RefCountedObject(TArgs &&...
|
|
399
|
+
RefCountedObject(TArgs &&...args) noexcept : TBaseType0(std::forward<TArgs>(args)...) {}
|
|
400
400
|
|
|
401
401
|
void AddRef() const noexcept override {}
|
|
402
402
|
void Release() const noexcept override {}
|