UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = RT_CONSTANT(opline, opline->op1);
if (IS_CONST == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = RT_CONSTANT(opline, opline->op1);
if (IS_CONST == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = RT_CONSTANT(opline, opline->op1);
if (IS_CONST == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CONST == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = RT_CONSTANT(opline, opline->op1);
if (IS_CONST == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_TMP_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_TMP_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_TMP_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = NULL;
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_TMP_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_TMP_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
+ if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
} else {
expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
+ if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
} else {
expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
+ if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
} else {
expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_VAR == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
+ if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
} else {
expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
if (IS_VAR == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_TMP_VAR) {
UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
if (Z_ISREF_P(expr_ptr)) {
- Z_ADDREF_P(expr_ptr);
+ if (IS_CV == IS_CV) {
+ Z_ADDREF_P(expr_ptr);
+ }
} else {
ZVAL_MAKE_REF_EX(expr_ptr, 2);
- }
+ }
} else {
expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_TMP_VAR) {