Skip to content

Commit 2498b04

Browse files
RSNarafacebook-github-bot
authored andcommitted
Make TurboModuleBinding constructor private
Summary: The TurboModuleBinding constructor actually doesn't need to be private! It's only called from BridgelessTurboModuleProxy or TurboModuleBinding::install. Changelog: [Internal] Differential Revision: D89751218
1 parent 75c00c3 commit 2498b04

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace facebook::react {
1919

2020
class BridgelessNativeModuleProxy : public jsi::HostObject {
2121
TurboModuleBinding turboBinding_;
22-
std::unique_ptr<TurboModuleBinding> legacyBinding_;
22+
std::optional<TurboModuleBinding> legacyBinding_;
2323

2424
public:
2525
BridgelessNativeModuleProxy(
@@ -32,11 +32,12 @@ class BridgelessNativeModuleProxy : public jsi::HostObject {
3232
std::move(moduleProvider),
3333
longLivedObjectCollection),
3434
legacyBinding_(
35-
legacyModuleProvider ? std::make_unique<TurboModuleBinding>(
36-
runtime,
37-
std::move(legacyModuleProvider),
38-
longLivedObjectCollection)
39-
: nullptr) {}
35+
legacyModuleProvider
36+
? std::make_optional<TurboModuleBinding>(TurboModuleBinding(
37+
runtime,
38+
std::move(legacyModuleProvider),
39+
longLivedObjectCollection))
40+
: std::nullopt) {}
4041

4142
jsi::Value get(jsi::Runtime& runtime, const jsi::PropNameID& name) override {
4243
/**

packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ class TurboModuleBinding final {
3333
TurboModuleProviderFunctionType &&legacyModuleProvider = nullptr,
3434
std::shared_ptr<LongLivedObjectCollection> longLivedObjectCollection = nullptr);
3535

36-
TurboModuleBinding(
37-
jsi::Runtime &runtime,
38-
TurboModuleProviderFunctionType &&moduleProvider,
39-
std::shared_ptr<LongLivedObjectCollection> longLivedObjectCollection);
40-
4136
~TurboModuleBinding();
4237

4338
private:
4439
friend BridgelessNativeModuleProxy;
4540

41+
TurboModuleBinding(
42+
jsi::Runtime &runtime,
43+
TurboModuleProviderFunctionType &&moduleProvider,
44+
std::shared_ptr<LongLivedObjectCollection> longLivedObjectCollection);
45+
4646
/**
4747
* A lookup function exposed to JS to get an instance of a TurboModule
4848
* for the given name.

0 commit comments

Comments
 (0)