fix: Crashes and usability issues with the pattern tree filter

This commit is contained in:
WerWolv
2025-12-01 19:35:22 +01:00
parent 8f57dd86af
commit 980438008c
5 changed files with 165 additions and 51 deletions

View File

@@ -29,9 +29,9 @@ namespace hex::plugin::visualizers {
dataPoints.clear();
lastPoint = { 0, 0 };
bitfield->forEachEntry(0, bitfield->getEntryCount(), [&](u64, pl::ptrn::Pattern *entry) {
bitfield->forEachEntry(0, bitfield->getEntryCount(), [&](u64, const auto &entry) {
size_t bitSize;
if (const auto *bitfieldField = dynamic_cast<pl::ptrn::PatternBitfieldField*>(entry); bitfieldField != nullptr)
if (const auto *bitfieldField = dynamic_cast<pl::ptrn::PatternBitfieldField*>(entry.get()); bitfieldField != nullptr)
bitSize = bitfieldField->getBitSize();
else
bitSize = entry->getSize() * 8;

View File

@@ -33,7 +33,7 @@ namespace hex::plugin::visualizers {
height = u64(arguments[2].toUnsigned());
auto iterable = dynamic_cast<pl::ptrn::IIterable*>(pattern.get());
iterable->forEachEntry(0, iterable->getEntryCount(), [&](u64, pl::ptrn::Pattern *entry) {
iterable->forEachEntry(0, iterable->getEntryCount(), [&](u64, const auto &entry) {
tableContent.push_back(entry->toString());
});
}