@@ -4367,62 +4367,25 @@ ZEND_API void zend_save_error_handling(zend_error_handling *current) /* {{{ */
4367
4367
{
4368
4368
current -> handling = EG (error_handling );
4369
4369
current -> exception = EG (exception_class );
4370
- ZVAL_COPY (& current -> user_handler , & EG ( user_error_handler ) );
4370
+ ZVAL_UNDEF (& current -> user_handler );
4371
4371
}
4372
4372
/* }}} */
4373
4373
4374
4374
ZEND_API void zend_replace_error_handling (zend_error_handling_t error_handling , zend_class_entry * exception_class , zend_error_handling * current ) /* {{{ */
4375
4375
{
4376
4376
if (current ) {
4377
4377
zend_save_error_handling (current );
4378
- if (error_handling != EH_NORMAL && Z_TYPE (EG (user_error_handler )) != IS_UNDEF ) {
4379
- zval_ptr_dtor (& EG (user_error_handler ));
4380
- ZVAL_UNDEF (& EG (user_error_handler ));
4381
- }
4382
4378
}
4379
+ ZEND_ASSERT (error_handling == EH_THROW || exception_class == NULL );
4383
4380
EG (error_handling ) = error_handling ;
4384
- EG (exception_class ) = error_handling == EH_THROW ? exception_class : NULL ;
4385
- }
4386
- /* }}} */
4387
-
4388
- static int same_zval (zval * zv1 , zval * zv2 ) /* {{{ */
4389
- {
4390
- if (Z_TYPE_P (zv1 ) != Z_TYPE_P (zv2 )) {
4391
- return 0 ;
4392
- }
4393
- switch (Z_TYPE_P (zv1 )) {
4394
- case IS_UNDEF :
4395
- case IS_NULL :
4396
- case IS_FALSE :
4397
- case IS_TRUE :
4398
- return 1 ;
4399
- case IS_LONG :
4400
- return Z_LVAL_P (zv1 ) == Z_LVAL_P (zv2 );
4401
- case IS_DOUBLE :
4402
- return Z_LVAL_P (zv1 ) == Z_LVAL_P (zv2 );
4403
- case IS_STRING :
4404
- case IS_ARRAY :
4405
- case IS_OBJECT :
4406
- case IS_RESOURCE :
4407
- return Z_COUNTED_P (zv1 ) == Z_COUNTED_P (zv2 );
4408
- default :
4409
- return 0 ;
4410
- }
4381
+ EG (exception_class ) = exception_class ;
4411
4382
}
4412
4383
/* }}} */
4413
4384
4414
4385
ZEND_API void zend_restore_error_handling (zend_error_handling * saved ) /* {{{ */
4415
4386
{
4416
4387
EG (error_handling ) = saved -> handling ;
4417
- EG (exception_class ) = saved -> handling == EH_THROW ? saved -> exception : NULL ;
4418
- if (Z_TYPE (saved -> user_handler ) != IS_UNDEF
4419
- && !same_zval (& saved -> user_handler , & EG (user_error_handler ))) {
4420
- zval_ptr_dtor (& EG (user_error_handler ));
4421
- ZVAL_COPY_VALUE (& EG (user_error_handler ), & saved -> user_handler );
4422
- } else if (Z_TYPE (saved -> user_handler )) {
4423
- zval_ptr_dtor (& saved -> user_handler );
4424
- }
4425
- ZVAL_UNDEF (& saved -> user_handler );
4388
+ EG (exception_class ) = saved -> exception ;
4426
4389
}
4427
4390
/* }}} */
4428
4391
0 commit comments