mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Make empty_fcall_info and empty_fcall_info_cache macros
See https://github.com/php/php-src/pull/18273, a constant may cause unnecessary cache misses. Closes GH-18326
This commit is contained in:
parent
3b87093bff
commit
16c4c066f4
2 changed files with 8 additions and 7 deletions
|
@ -690,8 +690,13 @@ ZEND_API zend_result _call_user_function_impl(zval *object, zval *function_name,
|
||||||
#define call_user_function_named(function_table, object, function_name, retval_ptr, param_count, params, named_params) \
|
#define call_user_function_named(function_table, object, function_name, retval_ptr, param_count, params, named_params) \
|
||||||
_call_user_function_impl(object, function_name, retval_ptr, param_count, params, named_params)
|
_call_user_function_impl(object, function_name, retval_ptr, param_count, params, named_params)
|
||||||
|
|
||||||
ZEND_API extern const zend_fcall_info empty_fcall_info;
|
#ifndef __cplusplus
|
||||||
ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache;
|
# define empty_fcall_info (zend_fcall_info) {0}
|
||||||
|
# define empty_fcall_info_cache (zend_fcall_info_cache) {0}
|
||||||
|
#else
|
||||||
|
# define empty_fcall_info zend_fcall_info {0}
|
||||||
|
# define empty_fcall_info_cache zend_fcall_info_cache {0}
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Build zend_call_info/cache from a zval*
|
/** Build zend_call_info/cache from a zval*
|
||||||
*
|
*
|
||||||
|
@ -800,7 +805,7 @@ static zend_always_inline void zend_fcc_dtor(zend_fcall_info_cache *fcc)
|
||||||
if (fcc->closure) {
|
if (fcc->closure) {
|
||||||
OBJ_RELEASE(fcc->closure);
|
OBJ_RELEASE(fcc->closure);
|
||||||
}
|
}
|
||||||
memcpy(fcc, &empty_fcall_info_cache, sizeof(zend_fcall_info_cache));
|
*fcc = empty_fcall_info_cache;
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API void zend_get_callable_zval_from_fcc(const zend_fcall_info_cache *fcc, zval *callable);
|
ZEND_API void zend_get_callable_zval_from_fcc(const zend_fcall_info_cache *fcc, zval *callable);
|
||||||
|
|
|
@ -53,10 +53,6 @@ ZEND_API void (*zend_execute_ex)(zend_execute_data *execute_data);
|
||||||
ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data, zval *return_value);
|
ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data, zval *return_value);
|
||||||
ZEND_API zend_class_entry *(*zend_autoload)(zend_string *name, zend_string *lc_name);
|
ZEND_API zend_class_entry *(*zend_autoload)(zend_string *name, zend_string *lc_name);
|
||||||
|
|
||||||
/* true globals */
|
|
||||||
ZEND_API const zend_fcall_info empty_fcall_info = {0};
|
|
||||||
ZEND_API const zend_fcall_info_cache empty_fcall_info_cache = {0};
|
|
||||||
|
|
||||||
#ifdef ZEND_WIN32
|
#ifdef ZEND_WIN32
|
||||||
ZEND_TLS HANDLE tq_timer = NULL;
|
ZEND_TLS HANDLE tq_timer = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue