From ba7eb5abf4cd50b4dd1dc894bc633b678d38a1cb Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 15 Sep 2020 03:13:22 -0400 Subject: cheat_engine: Remove unnecessary system argument to CheatParser's Parse function This isn't used within the function at all in any implementations, so we can remove it entirely. --- src/core/memory/cheat_engine.cpp | 5 ++--- src/core/memory/cheat_engine.h | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) (limited to 'src/core/memory') diff --git a/src/core/memory/cheat_engine.cpp b/src/core/memory/cheat_engine.cpp index e503118dd..68d09d350 100644 --- a/src/core/memory/cheat_engine.cpp +++ b/src/core/memory/cheat_engine.cpp @@ -98,10 +98,9 @@ std::string_view ExtractName(std::string_view data, std::size_t start_index) { } } // Anonymous namespace -std::vector TextCheatParser::Parse(const Core::System& system, - std::string_view data) const { +std::vector TextCheatParser::Parse(std::string_view data) const { std::vector out(1); - std::optional current_entry = std::nullopt; + std::optional current_entry; for (std::size_t i = 0; i < data.size(); ++i) { if (::isspace(data[i])) { diff --git a/src/core/memory/cheat_engine.h b/src/core/memory/cheat_engine.h index fa039a831..a31002346 100644 --- a/src/core/memory/cheat_engine.h +++ b/src/core/memory/cheat_engine.h @@ -47,8 +47,7 @@ class CheatParser { public: virtual ~CheatParser(); - virtual std::vector Parse(const Core::System& system, - std::string_view data) const = 0; + [[nodiscard]] virtual std::vector Parse(std::string_view data) const = 0; }; // CheatParser implementation that parses text files @@ -56,7 +55,7 @@ class TextCheatParser final : public CheatParser { public: ~TextCheatParser() override; - std::vector Parse(const Core::System& system, std::string_view data) const override; + [[nodiscard]] std::vector Parse(std::string_view data) const override; }; // Class that encapsulates a CheatList and manages its interaction with memory and CoreTiming -- cgit v1.2.3 From 3a8464cde28bd89146aa44af836f80ff925c293c Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 15 Sep 2020 03:24:42 -0400 Subject: cheat_engine: Convert ExtractName into a non-template function We don't need to create two separate instantiations of the same code, we can simply make the character template argument a regular function parameter. --- src/core/memory/cheat_engine.cpp | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to 'src/core/memory') diff --git a/src/core/memory/cheat_engine.cpp b/src/core/memory/cheat_engine.cpp index 68d09d350..29284a42d 100644 --- a/src/core/memory/cheat_engine.cpp +++ b/src/core/memory/cheat_engine.cpp @@ -19,10 +19,24 @@ #include "core/memory/cheat_engine.h" namespace Core::Memory { - +namespace { constexpr auto CHEAT_ENGINE_NS = std::chrono::nanoseconds{1000000000 / 12}; constexpr u32 KEYPAD_BITMASK = 0x3FFFFFF; +std::string_view ExtractName(std::string_view data, std::size_t start_index, char match) { + auto end_index = start_index; + while (data[end_index] != match) { + ++end_index; + if (end_index > data.size() || + (end_index - start_index - 1) > sizeof(CheatDefinition::readable_name)) { + return {}; + } + } + + return data.substr(start_index, end_index - start_index); +} +} // Anonymous namespace + StandardVmCallbacks::StandardVmCallbacks(Core::System& system, const CheatProcessMetadata& metadata) : metadata(metadata), system(system) {} @@ -82,22 +96,6 @@ CheatParser::~CheatParser() = default; TextCheatParser::~TextCheatParser() = default; -namespace { -template -std::string_view ExtractName(std::string_view data, std::size_t start_index) { - auto end_index = start_index; - while (data[end_index] != match) { - ++end_index; - if (end_index > data.size() || - (end_index - start_index - 1) > sizeof(CheatDefinition::readable_name)) { - return {}; - } - } - - return data.substr(start_index, end_index - start_index); -} -} // Anonymous namespace - std::vector TextCheatParser::Parse(std::string_view data) const { std::vector out(1); std::optional current_entry; @@ -114,7 +112,7 @@ std::vector TextCheatParser::Parse(std::string_view data) const { return {}; } - const auto name = ExtractName<'}'>(data, i + 1); + const auto name = ExtractName(data, i + 1, '}'); if (name.empty()) { return {}; } @@ -131,7 +129,7 @@ std::vector TextCheatParser::Parse(std::string_view data) const { current_entry = out.size(); out.emplace_back(); - const auto name = ExtractName<']'>(data, i + 1); + const auto name = ExtractName(data, i + 1, ']'); if (name.empty()) { return {}; } -- cgit v1.2.3