@@ -304,9 +304,12 @@ static ZEND_INI_MH(zend_test_observer_OnUpdateCommaList)
304
304
zend_array * * p = (zend_array * * ) ZEND_INI_GET_ADDR ();
305
305
zend_string * funcname ;
306
306
zend_function * func ;
307
+ if (!ZT_G (observer_enabled )) {
308
+ return FAILURE ;
309
+ }
307
310
if (stage != PHP_INI_STAGE_STARTUP && stage != PHP_INI_STAGE_ACTIVATE && stage != PHP_INI_STAGE_DEACTIVATE && stage != PHP_INI_STAGE_SHUTDOWN ) {
308
311
ZEND_HASH_FOREACH_STR_KEY (* p , funcname ) {
309
- if ((func = zend_hash_find_ptr (EG (function_table ), funcname ))) {
312
+ if ((func = zend_hash_find_ptr (EG (function_table ), funcname )) && ZEND_OBSERVER_DATA ( func ) != NULL ) {
310
313
void * old_handler ;
311
314
zend_observer_remove_begin_handler (func , observer_begin , (zend_observer_fcall_begin_handler * )& old_handler );
312
315
zend_observer_remove_end_handler (func , observer_end , (zend_observer_fcall_end_handler * )& old_handler );
@@ -329,7 +332,7 @@ static ZEND_INI_MH(zend_test_observer_OnUpdateCommaList)
329
332
zend_string_release (str );
330
333
if (stage != PHP_INI_STAGE_STARTUP && stage != PHP_INI_STAGE_ACTIVATE && stage != PHP_INI_STAGE_DEACTIVATE && stage != PHP_INI_STAGE_SHUTDOWN ) {
331
334
ZEND_HASH_FOREACH_STR_KEY (* p , funcname ) {
332
- if ((func = zend_hash_find_ptr (EG (function_table ), funcname ))) {
335
+ if ((func = zend_hash_find_ptr (EG (function_table ), funcname )) && ZEND_OBSERVER_DATA ( func ) != NULL ) {
333
336
zend_observer_add_begin_handler (func , observer_begin );
334
337
zend_observer_add_end_handler (func , observer_end );
335
338
}
0 commit comments