mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-12 22:56:52 +01:00
Common/SettingsHandler: Use std::string_view where applicable
Allows passed in strings to be non-allocating.
This commit is contained in:
parent
9dd8f82e78
commit
af576839d8
@ -38,27 +38,27 @@ void SettingsHandler::SetBytes(Buffer&& buffer)
|
||||
Decrypt();
|
||||
}
|
||||
|
||||
std::string SettingsHandler::GetValue(const std::string& key) const
|
||||
std::string SettingsHandler::GetValue(std::string_view key) const
|
||||
{
|
||||
std::string delim = std::string("\r\n");
|
||||
std::string toFind = delim + key + "=";
|
||||
constexpr char delim[] = "\r\n";
|
||||
std::string toFind = std::string(delim).append(key).append("=");
|
||||
size_t found = decoded.find(toFind);
|
||||
|
||||
if (found != decoded.npos)
|
||||
if (found != std::string_view::npos)
|
||||
{
|
||||
size_t delimFound = decoded.find(delim, found + toFind.length());
|
||||
if (delimFound == decoded.npos)
|
||||
if (delimFound == std::string_view::npos)
|
||||
delimFound = decoded.length() - 1;
|
||||
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
||||
}
|
||||
else
|
||||
{
|
||||
toFind = key + "=";
|
||||
toFind = std::string(key).append("=");
|
||||
found = decoded.find(toFind);
|
||||
if (found == 0)
|
||||
{
|
||||
size_t delimFound = decoded.find(delim, found + toFind.length());
|
||||
if (delimFound == decoded.npos)
|
||||
if (delimFound == std::string_view::npos)
|
||||
delimFound = decoded.length() - 1;
|
||||
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
||||
}
|
||||
@ -89,7 +89,7 @@ void SettingsHandler::Reset()
|
||||
m_buffer = {};
|
||||
}
|
||||
|
||||
void SettingsHandler::AddSetting(const std::string& key, const std::string& value)
|
||||
void SettingsHandler::AddSetting(std::string_view key, std::string_view value)
|
||||
{
|
||||
for (const char& c : key)
|
||||
{
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
|
||||
@ -27,11 +28,11 @@ public:
|
||||
SettingsHandler();
|
||||
explicit SettingsHandler(Buffer&& buffer);
|
||||
|
||||
void AddSetting(const std::string& key, const std::string& value);
|
||||
void AddSetting(std::string_view key, std::string_view value);
|
||||
|
||||
const Buffer& GetBytes() const;
|
||||
void SetBytes(Buffer&& buffer);
|
||||
std::string GetValue(const std::string& key) const;
|
||||
std::string GetValue(std::string_view key) const;
|
||||
|
||||
void Decrypt();
|
||||
void Reset();
|
||||
|
Loading…
x
Reference in New Issue
Block a user