@@ -2467,16 +2467,19 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
2467
2467
if (zend_hash_find (myht , "timezone_type" , 14 , (void * * ) & z_timezone_type ) == SUCCESS ) {
2468
2468
convert_to_long (* z_timezone_type );
2469
2469
if (zend_hash_find (myht , "timezone" , 9 , (void * * ) & z_timezone ) == SUCCESS ) {
2470
+ zend_error_handling error_handling ;
2471
+
2472
+ zend_replace_error_handling (EH_THROW , NULL , & error_handling TSRMLS_CC );
2470
2473
convert_to_string (* z_timezone );
2471
2474
2472
2475
switch (Z_LVAL_PP (z_timezone_type )) {
2473
2476
case TIMELIB_ZONETYPE_OFFSET :
2474
2477
case TIMELIB_ZONETYPE_ABBR : {
2475
2478
char * tmp = emalloc (Z_STRLEN_PP (z_date ) + Z_STRLEN_PP (z_timezone ) + 2 );
2476
2479
snprintf (tmp , Z_STRLEN_PP (z_date ) + Z_STRLEN_PP (z_timezone ) + 2 , "%s %s" , Z_STRVAL_PP (z_date ), Z_STRVAL_PP (z_timezone ));
2477
- php_date_initialize (* dateobj , tmp , Z_STRLEN_PP (z_date ) + Z_STRLEN_PP (z_timezone ) + 1 , NULL , NULL , 0 TSRMLS_CC );
2480
+ php_date_initialize (* dateobj , tmp , Z_STRLEN_PP (z_date ) + Z_STRLEN_PP (z_timezone ) + 1 , NULL , NULL , 1 TSRMLS_CC );
2478
2481
efree (tmp );
2479
- return 1 ;
2482
+ break ;
2480
2483
}
2481
2484
2482
2485
case TIMELIB_ZONETYPE_ID :
@@ -2490,10 +2493,15 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
2490
2493
tzobj -> tzi .tz = tzi ;
2491
2494
tzobj -> initialized = 1 ;
2492
2495
2493
- php_date_initialize (* dateobj , Z_STRVAL_PP (z_date ), Z_STRLEN_PP (z_date ), NULL , tmp_obj , 0 TSRMLS_CC );
2496
+ php_date_initialize (* dateobj , Z_STRVAL_PP (z_date ), Z_STRLEN_PP (z_date ), NULL , tmp_obj , 1 TSRMLS_CC );
2494
2497
zval_ptr_dtor (& tmp_obj );
2495
- return 1 ;
2498
+ break ;
2499
+ default :
2500
+ zend_restore_error_handling (& error_handling TSRMLS_CC );
2501
+ return 0 ;
2496
2502
}
2503
+ zend_restore_error_handling (& error_handling TSRMLS_CC );
2504
+ return 1 ;
2497
2505
}
2498
2506
}
2499
2507
}
0 commit comments