mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix Macro Errors for Windows (#34299)
Summary:
Fix macro errors for Windows. Current syntax breaks the build of the React Common project on Windows because the ({...}) syntax is not supported; must be replaced with lambda expressions.
Resolves https://github.com/facebook/react-native/issues/34090
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[General] [Fixed] - Fix macro errors for Windows.
lyahdav JoshuaGross
Pull Request resolved: https://github.com/facebook/react-native/pull/34299
Test Plan: Build on react-native-windows repo. Tested in RNW app.
Reviewed By: javache
Differential Revision: D38272966
Pulled By: NickGerleman
fbshipit-source-id: e76eac11cde173ef49465d01d793c593017f2ab7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
cd595bd090
commit
fc26dbfce0
@@ -13,12 +13,12 @@
|
||||
#include <react/renderer/graphics/conversions.h>
|
||||
|
||||
#define GET_FIELD_VALUE(field, fieldName, defaultValue, rawValue) \
|
||||
(rawValue.hasValue() ? ({ \
|
||||
(rawValue.hasValue() ? ([&rawValue, &context] { \
|
||||
decltype(defaultValue) res; \
|
||||
fromRawValue(context, rawValue, res); \
|
||||
res; \
|
||||
}) \
|
||||
: defaultValue)
|
||||
return res; \
|
||||
}()) \
|
||||
: defaultValue);
|
||||
|
||||
#define REBUILD_FIELD_SWITCH_CASE( \
|
||||
defaults, rawValue, property, field, fieldName) \
|
||||
|
||||
@@ -258,17 +258,18 @@ ViewProps::ViewProps(
|
||||
#endif
|
||||
{};
|
||||
|
||||
#define VIEW_EVENT_CASE(eventType, eventString) \
|
||||
case CONSTEXPR_RAW_PROPS_KEY_HASH(eventString): { \
|
||||
ViewEvents defaultViewEvents{}; \
|
||||
events[eventType] = ({ \
|
||||
bool res = defaultViewEvents[eventType]; \
|
||||
if (value.hasValue()) { \
|
||||
fromRawValue(context, value, res); \
|
||||
} \
|
||||
res; \
|
||||
}); \
|
||||
return; \
|
||||
#define VIEW_EVENT_CASE(eventType, eventString) \
|
||||
case CONSTEXPR_RAW_PROPS_KEY_HASH(eventString): { \
|
||||
ViewEvents defaultViewEvents{}; \
|
||||
events[eventType] = [ defaultViewEvents, &value, &context ]() constexpr { \
|
||||
bool res = defaultViewEvents[eventType]; \
|
||||
if (value.hasValue()) { \
|
||||
fromRawValue(context, value, res); \
|
||||
} \
|
||||
return res; \
|
||||
} \
|
||||
(); \
|
||||
return; \
|
||||
}
|
||||
|
||||
void ViewProps::setProp(
|
||||
|
||||
@@ -119,7 +119,7 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
|
||||
rawProps.iterateOverValues([&](RawPropsPropNameHash hash,
|
||||
const char *propName,
|
||||
RawValue const &fn) {
|
||||
shadowNodeProps.get()->setProp(context, hash, propName, fn);
|
||||
shadowNodeProps.get()->Props::setProp(context, hash, propName, fn);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -19,14 +19,12 @@
|
||||
|
||||
// Get hash at compile-time. sizeof(str) - 1 == strlen
|
||||
#define CONSTEXPR_RAW_PROPS_KEY_HASH(s) \
|
||||
({ \
|
||||
([]() constexpr { \
|
||||
CLANG_PRAGMA("clang diagnostic push") \
|
||||
CLANG_PRAGMA("clang diagnostic ignored \"-Wshadow\"") \
|
||||
constexpr RawPropsPropNameHash propNameHash = \
|
||||
folly::hash::fnv32_buf(s, sizeof(s) - 1); \
|
||||
propNameHash; \
|
||||
return folly::hash::fnv32_buf(s, sizeof(s) - 1); \
|
||||
CLANG_PRAGMA("clang diagnostic pop") \
|
||||
})
|
||||
}())
|
||||
|
||||
#define RAW_PROPS_KEY_HASH(s) folly::hash::fnv32_buf(s, std::strlen(s))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user