1
0
mirror of https://github.com/php/php-src.git synced 2026-04-11 10:03:18 +02:00

Fixed POST_INC/POST_DEC

This commit is contained in:
Dmitry Stogov
2014-02-25 13:20:43 +04:00
parent 6ee86d0c29
commit 4e63cf9b16
2 changed files with 12 additions and 6 deletions

View File

@@ -888,11 +888,12 @@ ZEND_VM_HANDLER(36, ZEND_POST_INC, VAR|CV, ANY)
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}
@@ -934,11 +935,12 @@ ZEND_VM_HANDLER(37, ZEND_POST_DEC, VAR|CV, ANY)
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}

View File

@@ -12293,11 +12293,12 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}
@@ -12339,11 +12340,12 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}
@@ -29199,11 +29201,12 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}
@@ -29244,11 +29247,12 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
retval = EX_VAR(opline->result.var);
ZVAL_DUP(retval, var_ptr);
if (Z_TYPE_P(var_ptr) == IS_REFERENCE) {
var_ptr = Z_REFVAL_P(var_ptr);
ZVAL_DUP(retval, var_ptr);
} else {
ZVAL_DUP(retval, var_ptr);
SEPARATE_ZVAL(var_ptr);
}