From d5d1577b436d3cad716670279da0799c7efdd1c2 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 22 Jan 2022 15:46:39 +0100 Subject: [PATCH] pattern: Make sure hidden variables don't get highlighted anymore --- .../include/hex/pattern_language/pattern_data.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/libimhex/include/hex/pattern_language/pattern_data.hpp b/lib/libimhex/include/hex/pattern_language/pattern_data.hpp index f5cca0d3c..3cf5970ac 100644 --- a/lib/libimhex/include/hex/pattern_language/pattern_data.hpp +++ b/lib/libimhex/include/hex/pattern_language/pattern_data.hpp @@ -137,7 +137,7 @@ namespace hex::pl { [[nodiscard]] virtual const PatternData* getPattern(u64 offset) const { - if (offset >= this->getOffset() && offset < (this->getOffset() + this->getSize())) + if (offset >= this->getOffset() && offset < (this->getOffset() + this->getSize()) && !this->isHidden()) return this; else return nullptr; @@ -446,7 +446,7 @@ namespace hex::pl { [[nodiscard]] const PatternData* getPattern(u64 offset) const override { - if (offset >= this->getOffset() && offset < (this->getOffset() + this->getSize())) + if (offset >= this->getOffset() && offset < (this->getOffset() + this->getSize()) && !this->isHidden()) return this; else return this->m_pointedAt->getPattern(offset); @@ -868,6 +868,8 @@ namespace hex::pl { [[nodiscard]] const PatternData* getPattern(u64 offset) const override { + if (this->isHidden()) return nullptr; + auto iter = std::find_if(this->m_entries.begin(), this->m_entries.end(), [this, offset](PatternData *pattern){ return offset >= pattern->getOffset() && offset < (pattern->getOffset() + pattern->getSize()); }); @@ -1017,6 +1019,8 @@ namespace hex::pl { [[nodiscard]] const PatternData* getPattern(u64 offset) const override { + if (this->isHidden()) return nullptr; + if (offset >= this->getOffset() && offset < (this->getOffset() + this->getSize())) { this->m_highlightTemplate->setOffset((offset / this->m_highlightTemplate->getSize()) * this->m_highlightTemplate->getSize()); return this->m_highlightTemplate->getPattern(offset); @@ -1150,6 +1154,7 @@ namespace hex::pl { [[nodiscard]] const PatternData* getPattern(u64 offset) const override { + if (this->isHidden()) return nullptr; auto iter = std::find_if(this->m_members.begin(), this->m_members.end(), [offset](PatternData *pattern){ return offset >= pattern->getOffset() && offset < (pattern->getOffset() + pattern->getSize()); @@ -1285,6 +1290,7 @@ namespace hex::pl { [[nodiscard]] const PatternData* getPattern(u64 offset) const override { + if (this->isHidden()) return nullptr; auto largestMember = std::find_if(this->m_members.begin(), this->m_members.end(), [this](PatternData *pattern) { return pattern->getSize() == this->getSize();