Always pop the l-value on variable declaration.
Alle Prüfungen waren erfolgreich
The build was successful.
Alle Prüfungen waren erfolgreich
The build was successful.
Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault. This finally fixes #49.
Dieser Commit ist enthalten in:
@@ -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 */
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren