diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-21 02:16:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-21 02:16:54 +0200 |
commit | d4104c72aa13851b770fffe988d1695fd1d8230a (patch) | |
tree | ece468667f318c824cd6d8d507509f8ce2263e65 | |
parent | Merge pull request #742 from bunnei/misc-apm (diff) | |
parent | param_package: Take std::string by value in string-based Set() function (diff) | |
download | yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar.gz yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar.bz2 yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar.lz yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar.xz yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.tar.zst yuzu-d4104c72aa13851b770fffe988d1695fd1d8230a.zip |
-rw-r--r-- | src/common/param_package.cpp | 19 | ||||
-rw-r--r-- | src/common/param_package.h | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/common/param_package.cpp b/src/common/param_package.cpp index e0df430ab..9526ca0c6 100644 --- a/src/common/param_package.cpp +++ b/src/common/param_package.cpp @@ -3,7 +3,9 @@ // Refer to the license.txt file included. #include <array> +#include <utility> #include <vector> + #include "common/logging/log.h" #include "common/param_package.h" #include "common/string_util.h" @@ -12,10 +14,11 @@ namespace Common { constexpr char KEY_VALUE_SEPARATOR = ':'; constexpr char PARAM_SEPARATOR = ','; + constexpr char ESCAPE_CHARACTER = '$'; -const std::string KEY_VALUE_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '0'}; -const std::string PARAM_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '1'}; -const std::string ESCAPE_CHARACTER_ESCAPE{ESCAPE_CHARACTER, '2'}; +constexpr char KEY_VALUE_SEPARATOR_ESCAPE[] = "$0"; +constexpr char PARAM_SEPARATOR_ESCAPE[] = "$1"; +constexpr char ESCAPE_CHARACTER_ESCAPE[] = "$2"; ParamPackage::ParamPackage(const std::string& serialized) { std::vector<std::string> pairs; @@ -35,7 +38,7 @@ ParamPackage::ParamPackage(const std::string& serialized) { part = Common::ReplaceAll(part, ESCAPE_CHARACTER_ESCAPE, {ESCAPE_CHARACTER}); } - Set(key_value[0], key_value[1]); + Set(key_value[0], std::move(key_value[1])); } } @@ -101,16 +104,16 @@ float ParamPackage::Get(const std::string& key, float default_value) const { } } -void ParamPackage::Set(const std::string& key, const std::string& value) { - data[key] = value; +void ParamPackage::Set(const std::string& key, std::string value) { + data.insert_or_assign(key, std::move(value)); } void ParamPackage::Set(const std::string& key, int value) { - data[key] = std::to_string(value); + data.insert_or_assign(key, std::to_string(value)); } void ParamPackage::Set(const std::string& key, float value) { - data[key] = std::to_string(value); + data.insert_or_assign(key, std::to_string(value)); } bool ParamPackage::Has(const std::string& key) const { diff --git a/src/common/param_package.h b/src/common/param_package.h index c4c11b221..7842cd4ef 100644 --- a/src/common/param_package.h +++ b/src/common/param_package.h @@ -28,7 +28,7 @@ public: std::string Get(const std::string& key, const std::string& default_value) const; int Get(const std::string& key, int default_value) const; float Get(const std::string& key, float default_value) const; - void Set(const std::string& key, const std::string& value); + void Set(const std::string& key, std::string value); void Set(const std::string& key, int value); void Set(const std::string& key, float value); bool Has(const std::string& key) const; |