diff --git a/src/api/sorting/plugin_sorting_data.cpp b/src/api/sorting/plugin_sorting_data.cpp index b0d53393..1f1f1abc 100644 --- a/src/api/sorting/plugin_sorting_data.cpp +++ b/src/api/sorting/plugin_sorting_data.cpp @@ -59,6 +59,7 @@ PluginSortingData::PluginSortingData( const std::vector& loadOrder) : #endif plugin_(plugin), + name_(plugin == nullptr ? std::string() : plugin->GetName()), group_(userMetadata.GetGroup().value_or( masterlistMetadata.GetGroup().value_or(Group::DEFAULT_NAME))), masterlistLoadAfter_(masterlistMetadata.GetLoadAfterFiles()), @@ -89,7 +90,7 @@ PluginSortingData::PluginSortingData( overrideRecordCount_ = plugin->GetOverrideRecordCount(); } -std::string PluginSortingData::GetName() const { return plugin_->GetName(); } +const std::string& PluginSortingData::GetName() const { return name_; } bool PluginSortingData::IsMaster() const { return plugin_ != nullptr && plugin_->IsMaster(); diff --git a/src/api/sorting/plugin_sorting_data.h b/src/api/sorting/plugin_sorting_data.h index 2a8d06fe..1383e67e 100644 --- a/src/api/sorting/plugin_sorting_data.h +++ b/src/api/sorting/plugin_sorting_data.h @@ -49,7 +49,7 @@ public: const std::vector& loadOrder); #endif - std::string GetName() const; + const std::string& GetName() const; bool IsMaster() const; bool IsBlueprintMaster() const; bool LoadsArchive() const; @@ -72,6 +72,7 @@ public: private: const PluginSortingInterface* plugin_{nullptr}; + std::string name_; std::string group_; std::vector masterlistLoadAfter_;