Skip to content

Commit

Permalink
reserve space to avoid multiple allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
blacroc10 committed Oct 5, 2024
1 parent 101c7a3 commit 3b44cdd
Showing 1 changed file with 21 additions and 20 deletions.
41 changes: 21 additions & 20 deletions plugins/script_loader/source/plugin_script_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,32 +32,33 @@ namespace {
scripts.emplace_back(&script);
}

std::vector<const Script*> loadAllScripts() {
std::vector<const Script*> scripts;
std::vector<const Script*> loadAllScripts() {
std::vector<const Script*> scripts;

try {
std::apply([&scripts](auto&&... args) {
(loadScript(scripts, args), ...);
}, s_loaders);
} catch (const std::exception &e) {
log::error("Error when loading scripts: {}", e.what());
}

{
std::vector<hex::Feature> features;
for (const auto &script : scripts) {
if (!script->background)
continue;
try {
std::apply([&scripts](auto&&... args) {
(loadScript(scripts, std::forward<decltype(args)>(args)), ...);
}, s_loaders);
} catch (const std::exception &e) {
log::error("Error when loading scripts: {}", e.what());
return {};
}

features.emplace_back(script->name, true);
}
std::vector<hex::Feature> features;
features.reserve(scripts.size());

IMHEX_PLUGIN_FEATURES = features;
for (const auto &script : scripts) {
if (script->background) {
features.emplace_back(script->name, true);
}

return scripts;
}

IMHEX_PLUGIN_FEATURES = std::move(features);

return scripts;
}


void initializeLoader(u32 &count, auto &loader) {
try {
if (loader.initialize())
Expand Down

0 comments on commit 3b44cdd

Please sign in to comment.