1
0
mirror of synced 2025-02-17 18:59:21 +01:00

patterns: Fixed struct members that overlap with [[no_unique_address]] members not being highlighted

This commit is contained in:
WerWolv 2022-03-17 23:32:22 +01:00
parent 7061a1ebfa
commit 89fe063b02

View File

@ -131,14 +131,15 @@ namespace hex::pl {
[[nodiscard]] const Pattern *getPattern(u64 offset) const override {
if (this->isHidden()) return nullptr;
auto iter = std::find_if(this->m_members.begin(), this->m_members.end(), [offset](const std::shared_ptr<Pattern> &pattern) {
return offset >= pattern->getOffset() && offset < (pattern->getOffset() + pattern->getSize());
});
for (auto member : this->m_members) {
if (offset >= member->getOffset() && offset < (member->getOffset() + member->getSize())) {
auto candidate = member->getPattern(offset);
if (candidate != nullptr)
return candidate;
}
}
if (iter == this->m_members.end())
return nullptr;
else
return (*iter)->getPattern(offset);
return nullptr;
}
void setEndian(std::endian endian) override {