Merge pull request #4024 from zhaowenlan1779/port-yuzu-745

Port yuzu-emu/yuzu#745 from yuzu
This commit is contained in:
Merry 2018-08-01 15:02:40 +01:00 committed by GitHub
commit ba6eee71f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 9 deletions

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <array> #include <array>
#include <utility>
#include <vector> #include <vector>
#include "common/logging/log.h" #include "common/logging/log.h"
#include "common/param_package.h" #include "common/param_package.h"
@ -12,10 +13,11 @@ namespace Common {
constexpr char KEY_VALUE_SEPARATOR = ':'; constexpr char KEY_VALUE_SEPARATOR = ':';
constexpr char PARAM_SEPARATOR = ','; constexpr char PARAM_SEPARATOR = ',';
constexpr char ESCAPE_CHARACTER = '$'; constexpr char ESCAPE_CHARACTER = '$';
const std::string KEY_VALUE_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '0'}; constexpr char KEY_VALUE_SEPARATOR_ESCAPE[] = "$0";
const std::string PARAM_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '1'}; constexpr char PARAM_SEPARATOR_ESCAPE[] = "$1";
const std::string ESCAPE_CHARACTER_ESCAPE{ESCAPE_CHARACTER, '2'}; constexpr char ESCAPE_CHARACTER_ESCAPE[] = "$2";
ParamPackage::ParamPackage(const std::string& serialized) { ParamPackage::ParamPackage(const std::string& serialized) {
std::vector<std::string> pairs; std::vector<std::string> pairs;
@ -35,7 +37,7 @@ ParamPackage::ParamPackage(const std::string& serialized) {
part = Common::ReplaceAll(part, ESCAPE_CHARACTER_ESCAPE, {ESCAPE_CHARACTER}); 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 +103,16 @@ float ParamPackage::Get(const std::string& key, float default_value) const {
} }
} }
void ParamPackage::Set(const std::string& key, const std::string& value) { void ParamPackage::Set(const std::string& key, std::string value) {
data[key] = value; data.insert_or_assign(key, std::move(value));
} }
void ParamPackage::Set(const std::string& key, int 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) { 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 { bool ParamPackage::Has(const std::string& key) const {

View file

@ -28,7 +28,7 @@ public:
std::string Get(const std::string& key, const std::string& default_value) const; std::string Get(const std::string& key, const std::string& default_value) const;
int Get(const std::string& key, int default_value) const; int Get(const std::string& key, int default_value) const;
float Get(const std::string& key, float 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, int value);
void Set(const std::string& key, float value); void Set(const std::string& key, float value);
bool Has(const std::string& key) const; bool Has(const std::string& key) const;