diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-11-18 14:37:36 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-11-18 14:37:36 +0300 |
commit | e20a727430713cc4ab81bc8faad64d616837c787 (patch) | |
tree | 5c6030cbee9313a644a72c3ed8b3cd9eba74e033 /Zend/zend_compile.c | |
parent | d86b5e2b082d6edcb6c92bf59ef56576d07da180 (diff) | |
download | php-git-e20a727430713cc4ab81bc8faad64d616837c787.tar.gz |
SEND_VAR_NO_REF optimization
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r-- | Zend/zend_compile.c | 7 |
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; } |