summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-05-30 11:12:24 +0400
committerDmitry Stogov <dmitry@zend.com>2014-05-30 11:12:24 +0400
commit984c8f87d2ca3840c3d3551713e1eff15aedd712 (patch)
treed1ee48386882716261a9dda3a17d974186312757
parent45d7ab1a4c323c50bc5007cf826540e62693db8c (diff)
downloadphp-git-984c8f87d2ca3840c3d3551713e1eff15aedd712.tar.gz
Avoid useless duplication of immutable arrays
-rw-r--r--Zend/zend_execute.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 37539d6ffe..0cfd8f456c 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -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);
}