mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Wrap observer notify functions into inlined enabled checks
Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
This commit is contained in:
parent
bf427b732a
commit
396b2aab85
3 changed files with 27 additions and 11 deletions
|
@ -301,7 +301,7 @@ ZEND_API void zend_observer_function_declared_register(zend_observer_function_de
|
||||||
zend_llist_add_element(&zend_observer_function_declared_callbacks, &cb);
|
zend_llist_add_element(&zend_observer_function_declared_callbacks, &cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API void ZEND_FASTCALL zend_observer_function_declared_notify(zend_op_array *op_array, zend_string *name)
|
ZEND_API void ZEND_FASTCALL _zend_observer_function_declared_notify(zend_op_array *op_array, zend_string *name)
|
||||||
{
|
{
|
||||||
if (CG(compiler_options) & ZEND_COMPILE_IGNORE_OBSERVER) {
|
if (CG(compiler_options) & ZEND_COMPILE_IGNORE_OBSERVER) {
|
||||||
return;
|
return;
|
||||||
|
@ -319,7 +319,7 @@ ZEND_API void zend_observer_class_linked_register(zend_observer_class_linked_cb
|
||||||
zend_llist_add_element(&zend_observer_class_linked_callbacks, &cb);
|
zend_llist_add_element(&zend_observer_class_linked_callbacks, &cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API void ZEND_FASTCALL zend_observer_class_linked_notify(zend_class_entry *ce, zend_string *name)
|
ZEND_API void ZEND_FASTCALL _zend_observer_class_linked_notify(zend_class_entry *ce, zend_string *name)
|
||||||
{
|
{
|
||||||
if (CG(compiler_options) & ZEND_COMPILE_IGNORE_OBSERVER) {
|
if (CG(compiler_options) & ZEND_COMPILE_IGNORE_OBSERVER) {
|
||||||
return;
|
return;
|
||||||
|
@ -337,7 +337,7 @@ ZEND_API void zend_observer_error_register(zend_observer_error_cb cb)
|
||||||
zend_llist_add_element(&zend_observer_error_callbacks, &cb);
|
zend_llist_add_element(&zend_observer_error_callbacks, &cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
|
ZEND_API void _zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
|
||||||
{
|
{
|
||||||
for (zend_llist_element *element = zend_observer_error_callbacks.head; element; element = element->next) {
|
for (zend_llist_element *element = zend_observer_error_callbacks.head; element; element = element->next) {
|
||||||
zend_observer_error_cb callback = *(zend_observer_error_cb *) (element->data);
|
zend_observer_error_cb callback = *(zend_observer_error_cb *) (element->data);
|
||||||
|
|
|
@ -84,17 +84,34 @@ ZEND_API void ZEND_FASTCALL zend_observer_fcall_end(
|
||||||
ZEND_API void zend_observer_fcall_end_all(void);
|
ZEND_API void zend_observer_fcall_end_all(void);
|
||||||
|
|
||||||
typedef void (*zend_observer_function_declared_cb)(zend_op_array *op_array, zend_string *name);
|
typedef void (*zend_observer_function_declared_cb)(zend_op_array *op_array, zend_string *name);
|
||||||
typedef void (*zend_observer_class_linked_cb)(zend_class_entry *ce, zend_string *name);
|
|
||||||
|
|
||||||
ZEND_API void zend_observer_function_declared_register(zend_observer_function_declared_cb cb);
|
ZEND_API void zend_observer_function_declared_register(zend_observer_function_declared_cb cb);
|
||||||
ZEND_API void ZEND_FASTCALL zend_observer_function_declared_notify(zend_op_array *op_array, zend_string *name);
|
ZEND_API void ZEND_FASTCALL _zend_observer_function_declared_notify(zend_op_array *op_array, zend_string *name);
|
||||||
|
static inline void zend_observer_function_declared_notify(zend_op_array *op_array, zend_string *name) {
|
||||||
|
if (UNEXPECTED(zend_observer_function_declared_observed)) {
|
||||||
|
_zend_observer_function_declared_notify(op_array, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef void (*zend_observer_class_linked_cb)(zend_class_entry *ce, zend_string *name);
|
||||||
|
|
||||||
ZEND_API void zend_observer_class_linked_register(zend_observer_class_linked_cb cb);
|
ZEND_API void zend_observer_class_linked_register(zend_observer_class_linked_cb cb);
|
||||||
ZEND_API void ZEND_FASTCALL zend_observer_class_linked_notify(zend_class_entry *ce, zend_string *name);
|
ZEND_API void ZEND_FASTCALL _zend_observer_class_linked_notify(zend_class_entry *ce, zend_string *name);
|
||||||
|
static inline void zend_observer_class_linked_notify(zend_class_entry *ce, zend_string *name) {
|
||||||
|
if (UNEXPECTED(zend_observer_class_linked_observed)) {
|
||||||
|
_zend_observer_class_linked_notify(ce, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
typedef void (*zend_observer_error_cb)(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
typedef void (*zend_observer_error_cb)(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
||||||
|
|
||||||
ZEND_API void zend_observer_error_register(zend_observer_error_cb callback);
|
ZEND_API void zend_observer_error_register(zend_observer_error_cb callback);
|
||||||
void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
ZEND_API void _zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
||||||
|
static inline void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message) {
|
||||||
|
if (UNEXPECTED(zend_observer_errors_observed)) {
|
||||||
|
_zend_observer_error_notify(type, error_filename, error_lineno, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
typedef void (*zend_observer_fiber_init_handler)(zend_fiber_context *initializing);
|
typedef void (*zend_observer_fiber_init_handler)(zend_fiber_context *initializing);
|
||||||
typedef void (*zend_observer_fiber_switch_handler)(zend_fiber_context *from, zend_fiber_context *to);
|
typedef void (*zend_observer_fiber_switch_handler)(zend_fiber_context *from, zend_fiber_context *to);
|
||||||
|
|
|
@ -160,7 +160,7 @@ static void zend_accel_function_hash_copy(HashTable *target, HashTable *source)
|
||||||
}
|
}
|
||||||
_zend_hash_append_ptr_ex(target, p->key, Z_PTR(p->val), 1);
|
_zend_hash_append_ptr_ex(target, p->key, Z_PTR(p->val), 1);
|
||||||
if (UNEXPECTED(call_observers) && *ZSTR_VAL(p->key)) { // if not rtd key
|
if (UNEXPECTED(call_observers) && *ZSTR_VAL(p->key)) { // if not rtd key
|
||||||
zend_observer_function_declared_notify(Z_PTR(p->val), p->key);
|
_zend_observer_function_declared_notify(Z_PTR(p->val), p->key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
target->nInternalPointer = 0;
|
target->nInternalPointer = 0;
|
||||||
|
@ -224,19 +224,18 @@ static void zend_accel_class_hash_copy(HashTable *target, HashTable *source)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
zend_class_entry *ce = Z_PTR(p->val);
|
zend_class_entry *ce = Z_PTR(p->val);
|
||||||
t = _zend_hash_append_ptr_ex(target, p->key, Z_PTR(p->val), 1);
|
_zend_hash_append_ptr_ex(target, p->key, Z_PTR(p->val), 1);
|
||||||
if ((ce->ce_flags & ZEND_ACC_LINKED)
|
if ((ce->ce_flags & ZEND_ACC_LINKED)
|
||||||
&& ZSTR_HAS_CE_CACHE(ce->name)
|
&& ZSTR_HAS_CE_CACHE(ce->name)
|
||||||
&& ZSTR_VAL(p->key)[0]) {
|
&& ZSTR_VAL(p->key)[0]) {
|
||||||
ZSTR_SET_CE_CACHE_EX(ce->name, ce, 0);
|
ZSTR_SET_CE_CACHE_EX(ce->name, ce, 0);
|
||||||
if (UNEXPECTED(call_observers)) {
|
if (UNEXPECTED(call_observers)) {
|
||||||
zend_observer_class_linked_notify(ce, p->key);
|
_zend_observer_class_linked_notify(ce, p->key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
target->nInternalPointer = 0;
|
target->nInternalPointer = 0;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void zend_accel_build_delayed_early_binding_list(zend_persistent_script *persistent_script)
|
void zend_accel_build_delayed_early_binding_list(zend_persistent_script *persistent_script)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue