Fix a bug in virtual stack access

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
This commit is contained in:
HyukWoo Park 2023-01-13 09:50:46 +09:00 committed by Patrick Kim
commit 4c5a226df4
2 changed files with 19 additions and 16 deletions

View file

@ -179,6 +179,7 @@ ByteCodeBreakpointContext::ByteCodeBreakpointContext(Debugger* debugger, Interpr
} else { \
registerIndex = stackBaseWillBe + (registerIndex - stackBase); \
} \
ASSERT(registerIndex < block->m_requiredTotalRegisterNumber); \
} \
} \
}
@ -228,11 +229,7 @@ ByteCodeBlock* ByteCodeGenerator::generateByteCode(Context* context, Interpreted
block->m_code.shrinkToFit();
}
if (ast->type() == ASTNodeType::Program) {
block->m_requiredTotalRegisterNumber = block->m_requiredOperandRegisterNumber + 1 + codeBlock->lexicalBlockStackAllocatedIdentifierMaximumDepth() + block->m_numeralLiteralData.size();
} else {
block->m_requiredTotalRegisterNumber = block->m_requiredOperandRegisterNumber + codeBlock->totalStackAllocatedVariableSize() + block->m_numeralLiteralData.size();
}
block->m_requiredTotalRegisterNumber = block->m_requiredOperandRegisterNumber + codeBlock->totalStackAllocatedVariableSize() + block->m_numeralLiteralData.size();
#if defined(ENABLE_CODE_CACHE)
// cache bytecode right before relocation