@@ -851,7 +851,7 @@ int zend_startup(zend_utility_functions *utility_functions) /* {{{ */
851
851
zend_execute_ex = dtrace_execute_ex ;
852
852
zend_execute_internal = dtrace_execute_internal ;
853
853
854
- zend_register_error_notify_callback ("dtrace" , dtrace_error_notify_cb );
854
+ zend_register_error_notify_callback (dtrace_error_notify_cb );
855
855
} else {
856
856
zend_compile_file = compile_file ;
857
857
zend_execute_ex = execute_ex ;
@@ -1769,7 +1769,6 @@ ZEND_API void zend_map_ptr_extend(size_t last)
1769
1769
1770
1770
static void zend_error_notify_callback_dtor (zend_error_notify_callback * callback )
1771
1771
{
1772
- free (callback -> name );
1773
1772
}
1774
1773
1775
1774
int zend_startup_error_notify_callbacks ()
@@ -1786,29 +1785,25 @@ int zend_shutdown_error_notify_callbacks()
1786
1785
return SUCCESS ;
1787
1786
}
1788
1787
1789
- void zend_error_notify_callbacks_apply ( llist_apply_func_t callback )
1788
+ void zend_register_error_notify_callback ( zend_error_notify_cb cb )
1790
1789
{
1791
- zend_llist_apply (& zend_error_notify_callbacks , callback );
1792
- }
1793
-
1794
- void zend_register_error_notify_callback (const char * name , zend_error_notify_cb cb )
1795
- {
1796
- ZEND_ASSERT (name != NULL );
1797
-
1798
1790
zend_error_notify_callback callback ;
1799
1791
1800
- callback .name = strdup (name );
1801
1792
callback .notify_callback = cb ;
1802
1793
1803
1794
zend_llist_add_element (& zend_error_notify_callbacks , & callback );
1804
1795
}
1805
1796
1806
- static void zend_error_notify_single_callback (zend_error_notify_callback * callback , int type , const char * error_filename , const uint32_t error_lineno , const char * format , va_list args )
1807
- {
1808
- callback -> notify_callback (type , error_filename , error_lineno , format , args );
1809
- }
1810
-
1811
1797
void zend_error_notify_all_callbacks (int type , const char * error_filename , const uint32_t error_lineno , const char * format , va_list args )
1812
1798
{
1813
- zend_llist_apply_with_arguments (& zend_error_notify_callbacks , (llist_apply_with_args_func_t ) zend_error_notify_single_callback , 5 , type , error_filename , error_lineno , format , args );
1799
+ zend_llist_element * element ;
1800
+ zend_error_notify_callback * callback ;
1801
+ va_list argcopy ;
1802
+
1803
+ for (element = zend_error_notify_callbacks .head ; element ; element = element -> next ) {
1804
+ va_copy (argcopy , args );
1805
+ callback = (zend_error_notify_callback * ) element -> data ;
1806
+ callback -> notify_callback (type , error_filename , error_lineno , format , argcopy );
1807
+ va_end (argcopy );
1808
+ }
1814
1809
}
0 commit comments