From: Xinchen Hui Date: Thu, 17 Mar 2016 14:45:19 +0000 (-0700) Subject: Merge branch 'PHP-7.0' X-Git-Tag: php-7.1.0alpha1~464 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2b6b261893f5b3448afb7cff6cf859a4d82a0de;p=php Merge branch 'PHP-7.0' Conflicts: Zend/zend_compile.c --- f2b6b261893f5b3448afb7cff6cf859a4d82a0de diff --cc Zend/zend_compile.c index af3427b5b8,1d7cd36381..d05872e6c0 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@@ -750,13 -656,22 +767,13 @@@ void zend_do_free(znode *op1) /* {{{ * if (opline->opcode == ZEND_FETCH_LIST && opline->op1_type == IS_VAR && opline->op1.var == op1->u.op.var) { - opline = get_next_op(CG(active_op_array)); - - opline->opcode = ZEND_FREE; - SET_NODE(opline->op1, op1); - SET_UNUSED(opline->op2); + zend_emit_op(NULL, ZEND_FREE, op1, NULL); return; } - if (opline->result_type==IS_VAR + if (opline->result_type == IS_VAR && opline->result.var == op1->u.op.var) { if (opline->opcode == ZEND_NEW) { - opline->result_type |= EXT_TYPE_UNUSED; - opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; - while (opline->opcode != ZEND_DO_FCALL || opline->op1.num != ZEND_CALL_CTOR) { - opline--; - } - opline->op1.num |= ZEND_CALL_CTOR_RESULT_UNUSED; + zend_emit_op(NULL, ZEND_FREE, op1, NULL); } break; } @@@ -6451,7 -6067,7 +6468,7 @@@ void zend_compile_short_circuiting(znod zval_ptr_dtor(&right_node.u.constant); } else { -- zend_emit_op(result, ZEND_BOOL, &right_node, NULL); ++ zend_emit_op_tmp(result, ZEND_BOOL, &right_node, NULL); } }