Skip to content

Commit c22cc8f

Browse files
javachefacebook-github-bot
authored andcommitted
Optimize arg conversion in SurfaceRegistryBinding (#39094)
Summary: Pull Request resolved: #39094 We can construct the outer jsi::Object directly instead of going through `valueFromDynamic` for the whole thing. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D48519751 fbshipit-source-id: d3efd60472103ce7c9d13646d0a9bf4164bf73e2
1 parent 4f8a8ce commit c22cc8f

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

packages/react-native/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ void SurfaceRegistryBinding::startSurface(
3636
folly::dynamic const &initialProps,
3737
DisplayMode displayMode) {
3838
SystraceSection s("SurfaceRegistryBinding::startSurface");
39-
folly::dynamic parameters = folly::dynamic::object();
40-
parameters["rootTag"] = surfaceId;
41-
parameters["initialProps"] = initialProps;
42-
parameters["fabric"] = true;
39+
jsi::Object parameters(runtime);
40+
parameters.setProperty(runtime, "rootTag", surfaceId);
41+
parameters.setProperty(
42+
runtime, "initialProps", jsi::valueFromDynamic(runtime, initialProps));
43+
parameters.setProperty(runtime, "fabric", true);
4344

4445
auto global = runtime.global();
4546
auto registry = global.getProperty(runtime, "RN$AppRegistry");
@@ -49,7 +50,7 @@ void SurfaceRegistryBinding::startSurface(
4950
method.call(
5051
runtime,
5152
{jsi::String::createFromUtf8(runtime, moduleName),
52-
jsi::valueFromDynamic(runtime, parameters),
53+
std::move(parameters),
5354
jsi::Value(runtime, displayModeToInt(displayMode))});
5455
} else {
5556
throwIfBridgeless(runtime, global, "startSurface");
@@ -58,7 +59,7 @@ void SurfaceRegistryBinding::startSurface(
5859
"AppRegistry",
5960
"runApplication",
6061
{jsi::String::createFromUtf8(runtime, moduleName),
61-
jsi::valueFromDynamic(runtime, parameters),
62+
std::move(parameters),
6263
jsi::Value(runtime, displayModeToInt(displayMode))});
6364
}
6465
}
@@ -70,10 +71,11 @@ void SurfaceRegistryBinding::setSurfaceProps(
7071
folly::dynamic const &initialProps,
7172
DisplayMode displayMode) {
7273
SystraceSection s("UIManagerBinding::setSurfaceProps");
73-
folly::dynamic parameters = folly::dynamic::object();
74-
parameters["rootTag"] = surfaceId;
75-
parameters["initialProps"] = initialProps;
76-
parameters["fabric"] = true;
74+
jsi::Object parameters(runtime);
75+
parameters.setProperty(runtime, "rootTag", surfaceId);
76+
parameters.setProperty(
77+
runtime, "initialProps", jsi::valueFromDynamic(runtime, initialProps));
78+
parameters.setProperty(runtime, "fabric", true);
7779

7880
auto global = runtime.global();
7981
auto registry = global.getProperty(runtime, "RN$AppRegistry");
@@ -83,7 +85,7 @@ void SurfaceRegistryBinding::setSurfaceProps(
8385
method.call(
8486
runtime,
8587
{jsi::String::createFromUtf8(runtime, moduleName),
86-
jsi::valueFromDynamic(runtime, parameters),
88+
std::move(parameters),
8789
jsi::Value(runtime, displayModeToInt(displayMode))});
8890
} else {
8991
throwIfBridgeless(runtime, global, "setSurfaceProps");
@@ -92,7 +94,7 @@ void SurfaceRegistryBinding::setSurfaceProps(
9294
"AppRegistry",
9395
"setSurfaceProps",
9496
{jsi::String::createFromUtf8(runtime, moduleName),
95-
jsi::valueFromDynamic(runtime, parameters),
97+
std::move(parameters),
9698
jsi::Value(runtime, displayModeToInt(displayMode))});
9799
}
98100
}

0 commit comments

Comments
 (0)