pattern: Properly treat calculated pointers as not part of the struct

This commit is contained in:
WerWolv
2022-02-06 19:46:39 +01:00
parent 334939324c
commit decfad5c99
2 changed files with 31 additions and 13 deletions

View File

@@ -885,14 +885,13 @@ 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(), [offset](PatternData *pattern) {
return offset >= pattern->getOffset() && offset < (pattern->getOffset() + pattern->getSize());
});
for (auto pattern : this->m_entries) {
auto result = pattern->getPattern(offset);
if (result != nullptr)
return result;
}
if (iter == this->m_entries.end())
return nullptr;
else
return (*iter)->getPattern(offset);
return nullptr;
}
void setEndian(std::endian endian) override {