@@ -1413,48 +1413,46 @@ ZEND_FUNCTION(trigger_error)
1413
1413
ZEND_FUNCTION (set_error_handler )
1414
1414
{
1415
1415
zval * error_handler ;
1416
+ zend_bool had_orig_error_handler = 0 ;
1416
1417
char * error_handler_name = NULL ;
1417
1418
long error_type = E_ALL | E_STRICT ;
1418
1419
1419
1420
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "z|l" , & error_handler , & error_type ) == FAILURE ) {
1420
1421
return ;
1421
1422
}
1422
1423
1423
- if (IS_NULL != Z_TYPE_P (error_handler )) {
1424
- zend_bool had_orig_error_handler = 0 ;
1425
- if (!zend_is_callable (error_handler , 0 , & error_handler_name TSRMLS_CC )) {
1426
- zend_error (E_WARNING , "%s() expects the argument (%s) to be a valid callback" ,
1427
- get_active_function_name (TSRMLS_C ), error_handler_name ?error_handler_name :"unknown" );
1428
- efree (error_handler_name );
1429
- return ;
1430
- }
1424
+ if (!zend_is_callable (error_handler , 0 , & error_handler_name TSRMLS_CC )) {
1425
+ zend_error (E_WARNING , "%s() expects the argument (%s) to be a valid callback" ,
1426
+ get_active_function_name (TSRMLS_C ), error_handler_name ?error_handler_name :"unknown" );
1431
1427
efree (error_handler_name );
1428
+ return ;
1429
+ }
1430
+ efree (error_handler_name );
1432
1431
1433
- if (EG (user_error_handler )) {
1434
- had_orig_error_handler = 1 ;
1435
- * return_value = * EG (user_error_handler );
1436
- zval_copy_ctor (return_value );
1437
- INIT_PZVAL (return_value );
1438
- zend_stack_push (& EG (user_error_handlers_error_reporting ), & EG (user_error_handler_error_reporting ), sizeof (EG (user_error_handler_error_reporting )));
1439
- zend_ptr_stack_push (& EG (user_error_handlers ), EG (user_error_handler ));
1440
- }
1441
-
1442
- ALLOC_ZVAL (EG (user_error_handler ));
1443
- EG (user_error_handler_error_reporting ) = (int )error_type ;
1444
- MAKE_COPY_ZVAL (& error_handler , EG (user_error_handler ));
1445
-
1446
- if (!had_orig_error_handler ) {
1447
- RETURN_NULL ();
1448
- }
1449
- } else { /* unset user-defined handler */
1450
- if (EG (user_error_handler )) {
1451
- zend_stack_push (& EG (user_error_handlers_error_reporting ), & EG (user_error_handler_error_reporting ), sizeof (EG (user_error_handler_error_reporting )));
1452
- zend_ptr_stack_push (& EG (user_error_handlers ), EG (user_error_handler ));
1453
- }
1432
+ if (EG (user_error_handler )) {
1433
+ had_orig_error_handler = 1 ;
1434
+ * return_value = * EG (user_error_handler );
1435
+ zval_copy_ctor (return_value );
1436
+ INIT_PZVAL (return_value );
1437
+ zend_stack_push (& EG (user_error_handlers_error_reporting ), & EG (user_error_handler_error_reporting ), sizeof (EG (user_error_handler_error_reporting )));
1438
+ zend_ptr_stack_push (& EG (user_error_handlers ), EG (user_error_handler ));
1439
+ }
1440
+ ALLOC_ZVAL (EG (user_error_handler ));
1454
1441
1442
+ if (!zend_is_true (error_handler )) { /* unset user-defined handler */
1443
+ FREE_ZVAL (EG (user_error_handler ));
1455
1444
EG (user_error_handler ) = NULL ;
1456
1445
RETURN_TRUE ;
1457
1446
}
1447
+
1448
+ EG (user_error_handler_error_reporting ) = (int )error_type ;
1449
+ * EG (user_error_handler ) = * error_handler ;
1450
+ zval_copy_ctor (EG (user_error_handler ));
1451
+ INIT_PZVAL (EG (user_error_handler ));
1452
+
1453
+ if (!had_orig_error_handler ) {
1454
+ RETURN_NULL ();
1455
+ }
1458
1456
}
1459
1457
/* }}} */
1460
1458
0 commit comments