]> granicus.if.org Git - php/commitdiff
Micro optimization
authorDmitry Stogov <dmitry@zend.com>
Thu, 13 Nov 2014 14:36:08 +0000 (17:36 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 13 Nov 2014 14:36:08 +0000 (17:36 +0300)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 9e8e628362babd6e2e2ff6cc0ee9694dbc3a01b1..f2a6fd15fd49c0073f543f1ad2a152691f75b9ad 100644 (file)
@@ -3124,12 +3124,11 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY)
                ZVAL_COPY_VALUE(arg, varptr);
        } else if (OP1_TYPE == IS_VAR &&
                UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) {
-               ZVAL_COPY_VALUE(arg, varptr);
-               ZVAL_MAKE_REF(arg);
+               ZVAL_NEW_REF(arg, varptr);
        } else {
-               ZVAL_MAKE_REF(varptr);
-               Z_ADDREF_P(varptr);
-               ZVAL_REF(arg, Z_REF_P(varptr));
+               ZVAL_NEW_REF(arg, varptr);
+               Z_ADDREF_P(arg);
+               ZVAL_REF(varptr, Z_REF_P(arg));
        }
 
        FREE_OP1_VAR_PTR();
index 8f4de2f8f6f75b5792606783609c9359258d36d8..776cc98dc6172d532832f1dcbe08b174119e2f9a 100644 (file)
@@ -16544,12 +16544,11 @@ static int ZEND_FASTCALL  ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
                ZVAL_COPY_VALUE(arg, varptr);
        } else if (IS_VAR == IS_VAR &&
                UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) {
-               ZVAL_COPY_VALUE(arg, varptr);
-               ZVAL_MAKE_REF(arg);
+               ZVAL_NEW_REF(arg, varptr);
        } else {
-               ZVAL_MAKE_REF(varptr);
-               Z_ADDREF_P(varptr);
-               ZVAL_REF(arg, Z_REF_P(varptr));
+               ZVAL_NEW_REF(arg, varptr);
+               Z_ADDREF_P(arg);
+               ZVAL_REF(varptr, Z_REF_P(arg));
        }
 
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -34339,12 +34338,11 @@ static int ZEND_FASTCALL  ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
                ZVAL_COPY_VALUE(arg, varptr);
        } else if (IS_CV == IS_VAR &&
                UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) {
-               ZVAL_COPY_VALUE(arg, varptr);
-               ZVAL_MAKE_REF(arg);
+               ZVAL_NEW_REF(arg, varptr);
        } else {
-               ZVAL_MAKE_REF(varptr);
-               Z_ADDREF_P(varptr);
-               ZVAL_REF(arg, Z_REF_P(varptr));
+               ZVAL_NEW_REF(arg, varptr);
+               Z_ADDREF_P(arg);
+               ZVAL_REF(varptr, Z_REF_P(arg));
        }
 
        ZEND_VM_NEXT_OPCODE();