diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-11-17 08:36:14 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-11-17 08:36:14 +0300 |
| commit | 54fa42475120f3ab61f50732fa2d68c3af07f259 (patch) | |
| tree | e3852dfa159a947a47b1c97362ab4200f7838968 /Zend/zend_execute.c | |
| parent | 9e3ebd3a0d9919d75f526e2cef9bf35de8b4847f (diff) | |
| download | php-git-54fa42475120f3ab61f50732fa2d68c3af07f259.tar.gz | |
Micro optimization
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 1551789c48..8a8cbbffaf 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -456,15 +456,15 @@ static zend_always_inline zval *_get_zval_ptr_ptr_var(uint32_t var, const zend_e if (EXPECTED(Z_TYPE_P(ret) == IS_INDIRECT)) { should_free->var = NULL; - return Z_INDIRECT_P(ret); - } else if (!Z_REFCOUNTED_P(ret) || Z_REFCOUNT_P(ret) == 1) { - should_free->var = ret; - return ret; + ret = Z_INDIRECT_P(ret); } else { - Z_DELREF_P(ret); - should_free->var = NULL; - return ret; + should_free->var = ret; + if (Z_REFCOUNTED_P(ret) && Z_REFCOUNT_P(ret) > 1) { + should_free->var = NULL; + Z_DELREF_P(ret); + } } + return ret; } static inline zval *_get_zval_ptr_ptr(int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type TSRMLS_DC) |
