patterns: Fixed variable access inside pointer pattern yielding invalid results
This commit is contained in:
parent
69973af1ed
commit
c2d1589e74
@ -1090,13 +1090,13 @@ namespace hex::pl {
|
|||||||
offset = evaluator->dataOffset();
|
offset = evaluator->dataOffset();
|
||||||
|
|
||||||
{
|
{
|
||||||
auto pointedAtPattern = this->m_type->createPatterns(evaluator).front();
|
|
||||||
|
|
||||||
u128 pointerAddress = 0;
|
u128 pointerAddress = 0;
|
||||||
evaluator->getProvider()->read(pattern->getOffset(), &pointerAddress, pattern->getSize());
|
evaluator->getProvider()->read(pattern->getOffset(), &pointerAddress, pattern->getSize());
|
||||||
pointerAddress = hex::changeEndianess(pointerAddress, sizePattern->getSize(), sizePattern->getEndian());
|
pointerAddress = hex::changeEndianess(pointerAddress, sizePattern->getSize(), sizePattern->getEndian());
|
||||||
|
|
||||||
pointedAtPattern->setOffset(pointerAddress);
|
evaluator->dataOffset() = pointerAddress;
|
||||||
|
|
||||||
|
auto pointedAtPattern = this->m_type->createPatterns(evaluator).front();
|
||||||
|
|
||||||
pattern->setPointedAtPattern(pointedAtPattern);
|
pattern->setPointedAtPattern(pointedAtPattern);
|
||||||
pattern->setEndian(sizePattern->getEndian());
|
pattern->setEndian(sizePattern->getEndian());
|
||||||
|
Loading…
Reference in New Issue
Block a user