@@ -2519,35 +2519,40 @@ PHPAPI bool php_date_initialize(php_date_obj *dateobj, const char *time_str, siz
25192519 return 1 ;
25202520} /* }}} */
25212521
2522- PHPAPI void php_date_initialize_from_ts_long (php_date_obj * dateobj , zend_long sec , int usec ) /* {{{ */
2522+ PHPAPI void php_date_initialize_from_ts_sll (php_date_obj * dateobj , timelib_sll sec , int usec ) /* {{{ */
25232523{
25242524 dateobj -> time = timelib_time_ctor ();
25252525 dateobj -> time -> zone_type = TIMELIB_ZONETYPE_OFFSET ;
25262526
2527- timelib_unixtime2gmt (dateobj -> time , ( timelib_sll ) sec );
2527+ timelib_unixtime2gmt (dateobj -> time , sec );
25282528 timelib_update_ts (dateobj -> time , NULL );
25292529 php_date_set_time_fraction (dateobj -> time , usec );
25302530} /* }}} */
25312531
2532+ PHPAPI void php_date_initialize_from_ts_long (php_date_obj * dateobj , zend_long sec , int usec ) /* {{{ */
2533+ {
2534+ php_date_initialize_from_ts_sll (dateobj , (timelib_sll )sec , usec );
2535+ } /* }}} */
2536+
25322537PHPAPI bool php_date_initialize_from_ts_double (php_date_obj * dateobj , double ts ) /* {{{ */
25332538{
25342539 double sec_dval = trunc (ts );
2535- zend_long sec ;
2540+ timelib_sll sec ;
25362541 int usec ;
25372542
2538- if (UNEXPECTED (isnan (sec_dval ) || !PHP_DATE_DOUBLE_FITS_LONG (sec_dval ))) {
2543+ if (UNEXPECTED (isnan (sec_dval ) || !PHP_DATE_DOUBLE_FITS_SLL (sec_dval ))) {
25392544 zend_argument_error (
25402545 date_ce_date_range_error ,
25412546 1 ,
2542- "must be a finite number between " TIMELIB_LONG_FMT " and " TIMELIB_LONG_FMT ".999999, %g given" ,
2543- TIMELIB_LONG_MIN ,
2544- TIMELIB_LONG_MAX ,
2547+ "must be a finite number between " PHP_DATE_SLL_FMT " and " PHP_DATE_SLL_FMT ".999999, %g given" ,
2548+ INT64_MIN ,
2549+ INT64_MAX ,
25452550 ts
25462551 );
25472552 return false;
25482553 }
25492554
2550- sec = (zend_long )sec_dval ;
2555+ sec = (timelib_sll )sec_dval ;
25512556 usec = (int ) round (fmod (ts , 1 ) * 1000000 );
25522557
25532558 if (UNEXPECTED (abs (usec ) == 1000000 )) {
@@ -2556,13 +2561,13 @@ PHPAPI bool php_date_initialize_from_ts_double(php_date_obj *dateobj, double ts)
25562561 }
25572562
25582563 if (UNEXPECTED (usec < 0 )) {
2559- if (UNEXPECTED (sec == TIMELIB_LONG_MIN )) {
2564+ if (UNEXPECTED (sec == INT64_MAX )) {
25602565 zend_argument_error (
25612566 date_ce_date_range_error ,
25622567 1 ,
2563- "must be a finite number between " TIMELIB_LONG_FMT " and " TIMELIB_LONG_FMT ".999999, %g given" ,
2564- TIMELIB_LONG_MIN ,
2565- TIMELIB_LONG_MAX ,
2568+ "must be a finite number between " PHP_DATE_SLL_FMT " and " PHP_DATE_SLL_FMT ".999999, %g given" ,
2569+ INT64_MIN ,
2570+ INT64_MAX ,
25662571 ts
25672572 );
25682573 return false;
@@ -2572,7 +2577,7 @@ PHPAPI bool php_date_initialize_from_ts_double(php_date_obj *dateobj, double ts)
25722577 usec = 1000000 + usec ;
25732578 }
25742579
2575- php_date_initialize_from_ts_long (dateobj , sec , usec );
2580+ php_date_initialize_from_ts_sll (dateobj , sec , usec );
25762581
25772582 return true;
25782583} /* }}} */
0 commit comments