From: Dmitry Stogov Date: Mon, 14 Apr 2014 21:16:09 +0000 (+0400) Subject: Fixed reference counting X-Git-Tag: POST_PHPNG_MERGE~412^2~100 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=460120c88718f7ee14523d4495b2d3081c0835b4;p=php Fixed reference counting --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 610b46c58e..410e24c22f 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -3737,7 +3737,7 @@ ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMP|VAR|UNUS SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); + expr_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); if (IS_OP1_TMP_FREE()) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index a6d1be2270..c84671c685 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -15208,7 +15208,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); + expr_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -17392,7 +17392,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); + expr_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -19636,7 +19636,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); + expr_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -21062,7 +21062,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); + expr_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -23052,7 +23052,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); + expr_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -32386,7 +32386,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCO SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); + expr_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -34449,7 +34449,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMP_HANDLER(ZEND_OPCODE SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); + expr_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -36571,7 +36571,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); + expr_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -37879,7 +37879,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPC SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); + expr_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr; @@ -39730,7 +39730,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_ SEPARATE_ZVAL_TO_MAKE_IS_REF(expr_ptr); Z_ADDREF_P(expr_ptr); } else { - expr_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); + expr_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); if (0) { /* temporary variable */ ZVAL_COPY_VALUE(&new_expr, expr_ptr); expr_ptr = &new_expr;