patterns: Updated pattern language

Fixes #2266
This commit is contained in:
WerWolv
2025-05-25 11:00:59 +02:00
parent 56615d6c06
commit 145c88db31
5 changed files with 6 additions and 6 deletions

View File

@@ -26,7 +26,7 @@ namespace hex::plugin::builtin {
PatternEncodedString(pl::core::Evaluator *evaluator, u64 offset, size_t size, u32 line)
: Pattern(evaluator, offset, size, line) { }
[[nodiscard]] std::unique_ptr<Pattern> clone() const override {
[[nodiscard]] std::shared_ptr<Pattern> clone() const override {
return std::unique_ptr<Pattern>(new PatternEncodedString(*this));
}

View File

@@ -20,7 +20,7 @@ namespace hex::plugin::disasm {
PatternInstruction(pl::core::Evaluator *evaluator, u64 offset, size_t size, u32 line)
: Pattern(evaluator, offset, size, line) { }
[[nodiscard]] std::unique_ptr<Pattern> clone() const override {
[[nodiscard]] std::shared_ptr<Pattern> clone() const override {
return std::unique_ptr<Pattern>(new PatternInstruction(*this));
}

View File

@@ -125,8 +125,8 @@ namespace hex::ui {
std::vector<pl::ptrn::Pattern*> m_filteredPatterns;
std::vector<std::string> m_currPatternPath;
std::map<std::vector<std::string>, std::unique_ptr<pl::ptrn::Pattern>> m_favorites;
std::map<std::string, std::vector<std::unique_ptr<pl::ptrn::Pattern>>> m_groups;
std::map<std::vector<std::string>, std::shared_ptr<pl::ptrn::Pattern>> m_favorites;
std::map<std::string, std::vector<std::shared_ptr<pl::ptrn::Pattern>>> m_groups;
bool m_showFavoriteStars = false;
bool m_filtersUpdated = false;
bool m_showSpecName = false;

View File

@@ -1418,7 +1418,7 @@ namespace hex::ui {
if (!arguments.empty()) {
const auto &groupName = arguments.front().toString();
if (!m_groups.contains(groupName))
m_groups.insert({ groupName, std::vector<std::unique_ptr<pl::ptrn::Pattern>>() });
m_groups.insert({ groupName, { } });
m_groups[groupName].push_back(pattern->clone());
}