Always pop the l-value on variable declaration.
All checks were successful
The build was successful.
All checks were successful
The build was successful.
Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault. This finally fixes #49.
This commit is contained in:
parent
a5da714d61
commit
6b18e204cd
@ -2555,6 +2555,8 @@ static sxi32 PH7_CompileVar(ph7_gen_state *pGen) {
|
||||
void *p3 = (void *) zDup;
|
||||
/* Emit OP_DECLARE instruction */
|
||||
PH7_VmEmitInstr(pGen->pVm, pGen->pIn->nLine, PH7_OP_DECLARE, 0, nType, p3, 0);
|
||||
/* Pop the l-value */
|
||||
PH7_VmEmitInstr(pGen->pVm, nLine, PH7_OP_POP, 1, 0, 0, 0);
|
||||
/* Check if we have an expression to compile */
|
||||
if(pGen->pIn < pGen->pEnd && (pGen->pIn[2].nType & PH7_TK_EQUAL)) {
|
||||
/* Compile the expression */
|
||||
|
Loading…
Reference in New Issue
Block a user