Skip to content

Commit 1da4abd

Browse files
sammy-SCfacebook-github-bot
authored andcommitted
use folly::dynamic without std::optional (#51605)
Summary: Pull Request resolved: #51605 changelog: [internal] folly::dynamic can be constructed with nullptr and it creates a null folly::dynamic. Let's use that to indicate missing value instead of std::optional to lower C++ binary size. Reviewed By: rshest Differential Revision: D75174590 fbshipit-source-id: f2dfef00975686f6ac4c14b42539e700e967075b
1 parent 53b232f commit 1da4abd

5 files changed

Lines changed: 11 additions & 11 deletions

File tree

packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedMountingOverrideDelegate.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
namespace facebook::react {
1515

1616
AnimatedMountingOverrideDelegate::AnimatedMountingOverrideDelegate(
17-
std::function<std::optional<folly::dynamic>(Tag)> getAnimatedManagedProps,
17+
std::function<folly::dynamic(Tag)> getAnimatedManagedProps,
1818
std::weak_ptr<UIManagerBinding> uiManagerBinding)
1919
: MountingOverrideDelegate(),
2020
getAnimatedManagedProps_(std::move(getAnimatedManagedProps)),
@@ -39,8 +39,9 @@ AnimatedMountingOverrideDelegate::pullTransaction(
3939
for (const auto& mutation : mutations) {
4040
if (mutation.type == ShadowViewMutation::Update) {
4141
const auto tag = mutation.newChildShadowView.tag;
42-
if (auto props = getAnimatedManagedProps_(tag)) {
43-
animatedManagedProps.insert({tag, std::move(*props)});
42+
auto props = getAnimatedManagedProps_(tag);
43+
if (!props.isNull()) {
44+
animatedManagedProps.insert({tag, std::move(props)});
4445
}
4546
}
4647
}

packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedMountingOverrideDelegate.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class UIManagerBinding;
2222
class AnimatedMountingOverrideDelegate : public MountingOverrideDelegate {
2323
public:
2424
AnimatedMountingOverrideDelegate(
25-
std::function<std::optional<folly::dynamic>(Tag)> getAnimatedManagedProps,
25+
std::function<folly::dynamic(Tag)> getAnimatedManagedProps,
2626
std::weak_ptr<UIManagerBinding> uiManagerBinding);
2727

2828
bool shouldOverridePullTransaction() const override;
@@ -34,7 +34,7 @@ class AnimatedMountingOverrideDelegate : public MountingOverrideDelegate {
3434
ShadowViewMutationList mutations) const override;
3535

3636
private:
37-
std::function<std::optional<folly::dynamic>(Tag)> getAnimatedManagedProps_;
37+
std::function<folly::dynamic(Tag)> getAnimatedManagedProps_;
3838

3939
std::weak_ptr<UIManagerBinding> uiManagerBinding_;
4040
};

packages/react-native/ReactCxxPlatform/react/renderer/animated/NativeAnimatedNodesManager.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -640,8 +640,7 @@ bool NativeAnimatedNodesManager::onAnimationFrame(uint64_t timestamp) {
640640
return commitProps();
641641
}
642642

643-
std::optional<folly::dynamic> NativeAnimatedNodesManager::managedProps(
644-
Tag tag) noexcept {
643+
folly::dynamic NativeAnimatedNodesManager::managedProps(Tag tag) noexcept {
645644
std::lock_guard<std::mutex> lock(connectedAnimatedNodesMutex_);
646645
const auto iter = connectedAnimatedNodes_.find(tag);
647646
if (iter != connectedAnimatedNodes_.end()) {
@@ -650,7 +649,7 @@ std::optional<folly::dynamic> NativeAnimatedNodesManager::managedProps(
650649
}
651650
}
652651

653-
return {};
652+
return nullptr;
654653
}
655654

656655
bool NativeAnimatedNodesManager::isOnRenderThread() const noexcept {

packages/react-native/ReactCxxPlatform/react/renderer/animated/NativeAnimatedNodesManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class NativeAnimatedNodesManager {
160160
void updateNodes(
161161
const std::set<int>& finishedAnimationValueNodes = {}) noexcept;
162162

163-
std::optional<folly::dynamic> managedProps(Tag tag) noexcept;
163+
folly::dynamic managedProps(Tag tag) noexcept;
164164

165165
bool isOnRenderThread() const noexcept;
166166

packages/react-native/ReactCxxPlatform/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ NativeAnimatedNodesManagerProvider::getOrCreate(jsi::Runtime& runtime) {
100100
[nativeAnimatedNodesManager =
101101
std::weak_ptr<NativeAnimatedNodesManager>(
102102
nativeAnimatedNodesManager_)](
103-
Tag tag) -> std::optional<folly::dynamic> {
103+
Tag tag) -> folly::dynamic {
104104
if (auto nativeAnimatedNodesManagerStrong =
105105
nativeAnimatedNodesManager.lock()) {
106106
return nativeAnimatedNodesManagerStrong->managedProps(tag);
107107
}
108-
return std::nullopt;
108+
return nullptr;
109109
},
110110
uiManagerBinding_);
111111

0 commit comments

Comments
 (0)