diff options
author | Dmitry Stogov <dmitry@zend.com> | 2016-03-31 18:47:25 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2016-03-31 18:47:25 +0300 |
commit | fcbe1e8edf8614b098057d5c280f6bfbbe753faf (patch) | |
tree | 70c7cfee8fbe64790642a7c7d274b67aca3903be /Zend/zend_vm_def.h | |
parent | f3c70f118c54dceea02e50de526c3138c2719384 (diff) | |
download | php-git-fcbe1e8edf8614b098057d5c280f6bfbbe753faf.tar.gz |
Use CALL_INFO flag to check if we need to destroy symbol_table.
This saves one memory load on most RETURN opcodes.
Diffstat (limited to 'Zend/zend_vm_def.h')
-rw-r--r-- | Zend/zend_vm_def.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 2557509381..b4303954ce 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2521,7 +2521,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) zend_object *object; i_free_compiled_variables(execute_data); - if (UNEXPECTED(EX(symbol_table) != NULL)) { + if (UNEXPECTED(call_info & ZEND_CALL_FREE_SYMBOL_TABLE)) { zend_clean_and_cache_symbol_table(EX(symbol_table)); } zend_vm_stack_free_extra_args_ex(call_info, execute_data); @@ -2579,7 +2579,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) } else { if (ZEND_CALL_KIND_EX(call_info) == ZEND_CALL_TOP_FUNCTION) { i_free_compiled_variables(execute_data); - if (UNEXPECTED(EX(symbol_table) != NULL)) { + if (UNEXPECTED(call_info & ZEND_CALL_FREE_SYMBOL_TABLE)) { zend_clean_and_cache_symbol_table(EX(symbol_table)); } zend_vm_stack_free_extra_args_ex(call_info, execute_data); |