]> granicus.if.org Git - php/commitdiff
Avoid useless duplication of immutable arrays
authorDmitry Stogov <dmitry@zend.com>
Fri, 30 May 2014 07:12:24 +0000 (11:12 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 30 May 2014 07:12:24 +0000 (11:12 +0400)
Zend/zend_execute.c

index 37539d6ffecfca9c37b622c04218bedb574ecfd8..0cfd8f456c00aae0620f97865d54c0b4881de2b5 100644 (file)
@@ -729,8 +729,10 @@ static inline void zend_assign_to_object(zval *retval, zval *object_ptr, zval *p
                ZVAL_COPY_VALUE(&tmp, value);
                value = &tmp;
        } else if (value_type == IS_CONST) {
-               ZVAL_DUP(&tmp, value);
-               value = &tmp;
+               if (UNEXPECTED(Z_OPT_COPYABLE_P(value))) {
+                       ZVAL_DUP(&tmp, value);
+                       value = &tmp;
+               }
        } else if (Z_REFCOUNTED_P(value)) {
                Z_ADDREF_P(value);
        }