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 коммит произвёл Facebook GitHub Bot
Родитель 70fcab76a4
Коммит 3f98c8e4c2
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -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)};
}
}