]> granicus.if.org Git - php/commitdiff
Micro optimizations for the more frequently paths
authorDmitry Stogov <dmitry@zend.com>
Thu, 16 Apr 2015 11:46:54 +0000 (14:46 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 16 Apr 2015 11:46:54 +0000 (14:46 +0300)
Zend/zend_execute.c
Zend/zend_execute.h

index f60cfbfa689629ba04537718acce2fced63fa078..04c33f841508296d179ce9369b8db78945f075fa 100644 (file)
@@ -1803,14 +1803,12 @@ ZEND_API void zend_clean_and_cache_symbol_table(zend_array *symbol_table) /* {{{
 
 static zend_always_inline void i_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */
 {
-       if (EXPECTED(EX(func)->op_array.last_var > 0)) {
-               zval *cv = EX_VAR_NUM(0);
-               zval *end = cv + EX(func)->op_array.last_var;
-               do {
-                       zval_ptr_dtor(cv);
-                       cv++;
-               } while (cv != end);
-       }
+       zval *cv = EX_VAR_NUM(0);
+       zval *end = cv + EX(func)->op_array.last_var;
+       while (EXPECTED(cv != end)) {
+               zval_ptr_dtor(cv);
+               cv++;
+       }
 }
 /* }}} */
 
index f98faf91970857fc3f7a5fb4a2918cab48541a18..4dfed1830d1d1ea14a61c78e0c89feaba11c4168 100644 (file)
@@ -194,7 +194,7 @@ static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame(uint3
 
 static zend_always_inline void zend_vm_stack_free_extra_args_ex(uint32_t call_info, zend_execute_data *call)
 {
-       if (call_info & ZEND_CALL_FREE_EXTRA_ARGS) {
+       if (UNEXPECTED(call_info & ZEND_CALL_FREE_EXTRA_ARGS)) {
                zval *end = ZEND_CALL_VAR_NUM(call, call->func->op_array.last_var + call->func->op_array.T);
                zval *p = end + (ZEND_CALL_NUM_ARGS(call) - call->func->op_array.num_args);
                do {