Avoid full copy of large folly::dynamic objects by switching to std::move semantics (#33621)

Summary:
Problem:
Current creation of ModuleConfig does a full copy of folly::dynamic object, which for large objects can cause 1000's of memory allocations, and thus increasing app's memory footprint and speed.

Fix:
Use std::move semantics to avoid copy of folly::dynamic, thus avoiding memory allocations.

## Changelog

[General] [Fixed] - Avoid full copy of large folly::dynamic objects by switching to std::move semantics

Pull Request resolved: https://github.com/facebook/react-native/pull/33621

Test Plan:
Compiled React Native for Windows
Consumed into Microsoft Excel App
Tested functionality through Microsoft Office Excel App
Viewed Memory Allocations in Debugger

Reviewed By: cortinico

Differential Revision: D35599759

Pulled By: RSNara

fbshipit-source-id: 095a961422cca4655590d2283f6955472f1f0410
This commit is contained in:
NikoAri
2022-04-13 16:26:55 -07:00
committed by Facebook GitHub Bot
parent 70fcab76a4
commit 3f98c8e4c2
+1 -1
View File
@@ -189,7 +189,7 @@ folly::Optional<ModuleConfig> ModuleRegistry::getConfig(
// no constants or methods
return folly::none;
} else {
return ModuleConfig{index, config};
return ModuleConfig{index, std::move(config)};
}
}