From: Dmitry Stogov Date: Wed, 17 Jan 2018 11:59:15 +0000 (+0300) Subject: Use ZVAL_DUP() instead of zval_copy_ctor() X-Git-Tag: php-7.3.0alpha1~596 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c5c9a69447bcd8991d542a5cbea75f4432d11887;p=php Use ZVAL_DUP() instead of zval_copy_ctor() --- diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index da4f7e5902..376d2295b9 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -188,8 +188,8 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array VAR_SOURCE(op1) = NULL; MAKE_NOP(src); } else { - zval c = ZEND_OP1_LITERAL(src); - zval_copy_ctor(&c); + zval c; + ZVAL_DUP(&c, &ZEND_OP1_LITERAL(src)); if (zend_optimizer_update_op1_const(op_array, opline, &c)) { zend_optimizer_remove_live_range(op_array, op1.var); VAR_SOURCE(op1) = NULL; @@ -256,9 +256,9 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array src->op1_type == IS_CONST) { znode_op op2 = opline->op2; - zval c = ZEND_OP1_LITERAL(src); + zval c; - zval_copy_ctor(&c); + ZVAL_DUP(&c, &ZEND_OP1_LITERAL(src)); if (zend_optimizer_update_op2_const(op_array, opline, &c)) { zend_optimizer_remove_live_range(op_array, op2.var); VAR_SOURCE(op2) = NULL; @@ -1151,8 +1151,8 @@ static void zend_jmp_optimization(zend_basic_block *block, zend_op_array *op_arr /* JMP L, L: JMPZNZ L1,L2 -> JMPZNZ L1,L2 */ *last_op = *target; if (last_op->op1_type == IS_CONST) { - zval zv = ZEND_OP1_LITERAL(last_op); - zval_copy_ctor(&zv); + zval zv; + ZVAL_DUP(&zv, &ZEND_OP1_LITERAL(last_op)); last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); } DEL_SOURCE(block, block->successors[0]); @@ -1168,8 +1168,8 @@ static void zend_jmp_optimization(zend_basic_block *block, zend_op_array *op_arr /* JMP L, L: RETURN to immediate RETURN */ *last_op = *target; if (last_op->op1_type == IS_CONST) { - zval zv = ZEND_OP1_LITERAL(last_op); - zval_copy_ctor(&zv); + zval zv; + ZVAL_DUP(&zv, &ZEND_OP1_LITERAL(last_op)); last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); } DEL_SOURCE(block, block->successors[0]); diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index a5ac88651c..58dff9d4f7 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -619,8 +619,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array, m->op1_type == type && m->op1.var == var) { zval v; - ZVAL_COPY_VALUE(&v, val); - zval_copy_ctor(&v); + ZVAL_DUP(&v, val); if (Z_TYPE(v) == IS_STRING) { zend_string_hash_val(Z_STR(v)); } @@ -678,8 +677,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array, if (m->opcode == ZEND_CASE) { m->opcode = ZEND_IS_EQUAL; } - ZVAL_COPY_VALUE(&v, val); - zval_copy_ctor(&v); + ZVAL_DUP(&v, val); if (Z_TYPE(v) == IS_STRING) { zend_string_hash_val(Z_STR(v)); } diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 118936c064..8e24e618a9 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -2041,8 +2041,7 @@ PHP_METHOD(SoapServer, addSoapHeader) *p = emalloc(sizeof(soapHeader)); memset(*p, 0, sizeof(soapHeader)); ZVAL_NULL(&(*p)->function_name); - (*p)->retval = *fault; - zval_copy_ctor(&(*p)->retval); + ZVAL_DUP(&(*p)->retval, fault); SOAP_SERVER_END_CODE(); }