From: Dmitry Stogov Date: Wed, 29 May 2019 10:59:01 +0000 (+0300) Subject: Merge branch 'PHP-7.4' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=207d928da8514e1ad30bd9aa47b3a26b6a89c8d9;p=php Merge branch 'PHP-7.4' * PHP-7.4: zend_assign_to_variable() optimization --- 207d928da8514e1ad30bd9aa47b3a26b6a89c8d9 diff --cc Zend/zend_execute.h index e34c56def2,b75aa0a2ad..053d22afd0 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@@ -116,23 -123,13 +123,8 @@@ static zend_always_inline zval* zend_as break; } } - if (Z_TYPE_P(variable_ptr) == IS_OBJECT && - UNEXPECTED(Z_OBJ_HANDLER_P(variable_ptr, set) != NULL)) { - Z_OBJ_HANDLER_P(variable_ptr, set)(variable_ptr, value); - return variable_ptr; - } garbage = Z_COUNTED_P(variable_ptr); - ZVAL_COPY_VALUE(variable_ptr, value); - if (ZEND_CONST_COND(value_type == IS_CONST, 0)) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(variable_ptr))) { - Z_ADDREF_P(variable_ptr); - } - } else if (value_type & (IS_CONST|IS_CV)) { - if (Z_OPT_REFCOUNTED_P(variable_ptr)) { - Z_ADDREF_P(variable_ptr); - } - } else if (ZEND_CONST_COND(value_type == IS_VAR, 1) && UNEXPECTED(ref)) { - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(variable_ptr)) { - Z_ADDREF_P(variable_ptr); - } - } + zend_copy_to_variable(variable_ptr, value, value_type, ref); if (GC_DELREF(garbage) == 0) { rc_dtor_func(garbage); } else { /* we need to split */