Cache plugins' master flag

Avoiding the overhead of checking with esplugin improves sorting performance by 5%.
This commit is contained in:
Oliver Hamlet
2025-01-17 20:18:34 +00:00
parent 9104620ef8
commit 3f4319afea
2 changed files with 4 additions and 4 deletions
+3 -4
View File
@@ -60,6 +60,7 @@ PluginSortingData::PluginSortingData(
#endif
plugin_(plugin),
name_(plugin == nullptr ? std::string() : plugin->GetName()),
isMaster_(plugin != nullptr && plugin->IsMaster()),
group_(userMetadata.GetGroup().value_or(
masterlistMetadata.GetGroup().value_or(Group::DEFAULT_NAME))),
masterlistLoadAfter_(masterlistMetadata.GetLoadAfterFiles()),
@@ -92,12 +93,10 @@ PluginSortingData::PluginSortingData(
const std::string& PluginSortingData::GetName() const { return name_; }
bool PluginSortingData::IsMaster() const {
return plugin_ != nullptr && plugin_->IsMaster();
}
bool PluginSortingData::IsMaster() const { return isMaster_; }
bool PluginSortingData::IsBlueprintMaster() const {
return plugin_ != nullptr && plugin_->IsMaster() &&
return isMaster_ &&
plugin_->IsBlueprintPlugin();
}
+1
View File
@@ -73,6 +73,7 @@ public:
private:
const PluginSortingInterface* plugin_{nullptr};
std::string name_;
bool isMaster_{false};
std::string group_;
std::vector<File> masterlistLoadAfter_;