/* if we don't have a user defined error handler */
if (!EG(user_error_handler)
- || !(EG(user_error_handler_error_reporting) & type)) {
+ || !(EG(user_error_handler_error_reporting) & type)
+ || EG(error_handling) != EH_NORMAL) {
zend_error_cb(type, error_filename, error_lineno, format, args);
} else switch (type) {
case E_ERROR:
#include "zend_operators.h"
#include "zend_variables.h"
+typedef enum {
+ EH_NORMAL = 0,
+ EH_SUPPRESS,
+ EH_THROW
+} zend_error_handling_t;
+
#endif /* ZEND_H */
/*
int user_error_handler_error_reporting;
zval *user_error_handler;
+ zval *user_error_handler_old;
zval *user_exception_handler;
zend_stack user_error_handlers_error_reporting;
zend_ptr_stack user_error_handlers;
zend_ptr_stack user_exception_handlers;
+ zend_error_handling_t error_handling;
+ zend_class_entry *exception_class;
+
/* timeout support */
int timeout_seconds;