]> granicus.if.org Git - php/commitdiff
Use ZVAL_DUP() instead of zval_copy_ctor()
authorDmitry Stogov <dmitry@zend.com>
Wed, 17 Jan 2018 11:59:15 +0000 (14:59 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 17 Jan 2018 11:59:15 +0000 (14:59 +0300)
ext/opcache/Optimizer/block_pass.c
ext/opcache/Optimizer/zend_optimizer.c
ext/soap/soap.c

index da4f7e59028dbec34277d7224a932d114ec2df70..376d2295b90fb2a8f483558adf3fdf76514cf988 100644 (file)
@@ -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]);
index a5ac88651c3f244f35926457042a3377cbaa4538..58dff9d4f7e90cd74eeddf60cfd5bc7aad039e5f 100644 (file)
@@ -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));
                                                                }
index 118936c064af3affda7ff56fc606f0f719ec88ee..8e24e618a9dcd12e20323cff1cf809d4c786c3b1 100644 (file)
@@ -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();
 }