summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-11-18 14:37:36 +0300
committerDmitry Stogov <dmitry@zend.com>2014-11-18 14:37:36 +0300
commite20a727430713cc4ab81bc8faad64d616837c787 (patch)
tree5c6030cbee9313a644a72c3ed8b3cd9eba74e033 /Zend/zend_compile.c
parentd86b5e2b082d6edcb6c92bf59ef56576d07da180 (diff)
downloadphp-git-e20a727430713cc4ab81bc8faad64d616837c787.tar.gz
SEND_VAR_NO_REF optimization
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index c3a572a04d..d15b85fc0b 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2478,7 +2478,12 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc TSRMLS_DC) /* {{{ *
if (fbc) {
flags |= ZEND_ARG_COMPILE_TIME_BOUND;
}
- opline->extended_value = flags;
+ if ((flags & ZEND_ARG_COMPILE_TIME_BOUND) && !(flags & ZEND_ARG_SEND_BY_REF)) {
+ opline->opcode = ZEND_SEND_VAR;
+ opline->extended_value = ZEND_ARG_COMPILE_TIME_BOUND;
+ } else {
+ opline->extended_value = flags;
+ }
} else if (fbc) {
opline->extended_value = ZEND_ARG_COMPILE_TIME_BOUND;
}