@@ -32,8 +32,9 @@ extern ZEND_API bool zend_observer_errors_observed;
3232extern ZEND_API bool zend_observer_function_declared_observed ;
3333extern ZEND_API bool zend_observer_class_linked_observed ;
3434
35- #define ZEND_OBSERVER_HANDLE (function ) (ZEND_USER_CODE((function)->type) \
36- ? zend_observer_fcall_op_array_extension : zend_observer_fcall_internal_function_extension)
35+ static zend_always_inline int ZEND_OBSERVER_HANDLE (const zend_function * function ) {
36+ return ZEND_USER_CODE (function -> common .type ) ? zend_observer_fcall_op_array_extension : zend_observer_fcall_internal_function_extension ;
37+ }
3738
3839#define ZEND_OBSERVER_DATA (function ) \
3940 ((zend_observer_fcall_begin_handler *)&ZEND_OP_ARRAY_EXTENSION((&(function)->common), ZEND_OBSERVER_HANDLE(function)))
@@ -45,18 +46,6 @@ extern ZEND_API bool zend_observer_class_linked_observed;
4546/* Omit zend_observer_fcall_internal_function_extension check, they are set at the same time. */
4647#define ZEND_OBSERVER_ENABLED (zend_observer_fcall_op_array_extension != -1)
4748
48- #define ZEND_OBSERVER_FCALL_BEGIN (execute_data ) do { \
49- if (ZEND_OBSERVER_ENABLED) { \
50- zend_observer_fcall_begin(execute_data); \
51- } \
52- } while (0)
53-
54- #define ZEND_OBSERVER_FCALL_END (execute_data , return_value ) do { \
55- if (ZEND_OBSERVER_ENABLED) { \
56- zend_observer_fcall_end(execute_data, return_value); \
57- } \
58- } while (0)
59-
6049typedef void (* zend_observer_fcall_begin_handler )(zend_execute_data * execute_data );
6150typedef void (* zend_observer_fcall_end_handler )(zend_execute_data * execute_data , zval * retval );
6251
@@ -87,6 +76,12 @@ ZEND_API void ZEND_FASTCALL zend_observer_fcall_begin(zend_execute_data *execute
8776/* prechecked: the call is actually observed. */
8877ZEND_API void ZEND_FASTCALL zend_observer_fcall_begin_prechecked (zend_execute_data * execute_data , zend_observer_fcall_begin_handler * observer_data );
8978
79+ static zend_always_inline void ZEND_OBSERVER_FCALL_BEGIN (zend_execute_data * execute_data ) {
80+ if (ZEND_OBSERVER_ENABLED ) {
81+ zend_observer_fcall_begin (execute_data );
82+ }
83+ }
84+
9085static zend_always_inline bool zend_observer_handler_is_unobserved (const zend_observer_fcall_begin_handler * handler ) {
9186 return * handler == ZEND_OBSERVER_NONE_OBSERVED ;
9287}
@@ -126,6 +121,12 @@ static zend_always_inline void zend_observer_fcall_end(zend_execute_data *execut
126121 }
127122}
128123
124+ static zend_always_inline void ZEND_OBSERVER_FCALL_END (zend_execute_data * execute_data , zval * return_value ) {
125+ if (ZEND_OBSERVER_ENABLED ) {
126+ zend_observer_fcall_end (execute_data , return_value );
127+ }
128+ }
129+
129130ZEND_API void zend_observer_fcall_end_all (void );
130131
131132typedef void (* zend_observer_function_declared_cb )(zend_op_array * op_array , zend_string * name );
0 commit comments