From 0327b11e0bec1b591c2a6f7e688be8e30170c1bd Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 24 Jan 2024 22:40:03 -0500 Subject: GraphicsModGroup: Reduce object churn We can emplace and move to avoid doing object copies. --- .../Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp') diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp index 40685dff1b..d61cfb384e 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp @@ -18,7 +18,7 @@ #include "VideoCommon/GraphicsModSystem/Constants.h" #include "VideoCommon/HiresTextures.h" -GraphicsModGroupConfig::GraphicsModGroupConfig(const std::string& game_id) : m_game_id(game_id) +GraphicsModGroupConfig::GraphicsModGroupConfig(std::string game_id) : m_game_id(std::move(game_id)) { } @@ -145,9 +145,9 @@ void GraphicsModGroupConfig::Save() const { picojson::object serialized_mod; mod.SerializeToProfile(&serialized_mod); - serialized_mods.push_back(picojson::value{serialized_mod}); + serialized_mods.emplace_back(std::move(serialized_mod)); } - serialized_root["mods"] = picojson::value{serialized_mods}; + serialized_root.emplace("mods", std::move(serialized_mods)); const auto output = picojson::value{serialized_root}.serialize(true); json_stream << output; -- cgit v1.2.3 From 2253d9a95d5c07524ecb9cf8711166e183347e41 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 24 Jan 2024 22:41:28 -0500 Subject: GraphicsModGroup: Mark move constructor and assignment as noexcept Allows containers to optimize off of std::move_if_noexcept --- .../Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp') diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp index d61cfb384e..9ce417e079 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp @@ -26,11 +26,12 @@ GraphicsModGroupConfig::~GraphicsModGroupConfig() = default; GraphicsModGroupConfig::GraphicsModGroupConfig(const GraphicsModGroupConfig&) = default; -GraphicsModGroupConfig::GraphicsModGroupConfig(GraphicsModGroupConfig&&) = default; +GraphicsModGroupConfig::GraphicsModGroupConfig(GraphicsModGroupConfig&&) noexcept = default; GraphicsModGroupConfig& GraphicsModGroupConfig::operator=(const GraphicsModGroupConfig&) = default; -GraphicsModGroupConfig& GraphicsModGroupConfig::operator=(GraphicsModGroupConfig&&) = default; +GraphicsModGroupConfig& +GraphicsModGroupConfig::operator=(GraphicsModGroupConfig&&) noexcept = default; void GraphicsModGroupConfig::Load() { -- cgit v1.2.3