Merge to 5_1 branch?
--Jani On Tue, 11 Apr 2006, Derick Rethans wrote:
derick Tue Apr 11 17:56:49 2006 UTC Added files: /php-src/ext/date/tests bug36988.phpt Modified files: /php-src/ext/date/lib timelib_structs.h tm2unixtime.c Log: - Fixed bug #36988 (mktime freezes on long numbers) http://cvs.php.net/viewcvs.cgi/php-src/ext/date/lib/timelib_structs.h?r1=1.19&r2=1.20&diff_format=u Index: php-src/ext/date/lib/timelib_structs.h diff -u php-src/ext/date/lib/timelib_structs.h:1.19 php-src/ext/date/lib/timelib_structs.h:1.20 --- php-src/ext/date/lib/timelib_structs.h:1.19 Sat Apr 8 14:57:42 2006 +++ php-src/ext/date/lib/timelib_structs.h Tue Apr 11 17:56:49 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: timelib_structs.h,v 1.19 2006/04/08 14:57:42 derick Exp $ */ +/* $Id: timelib_structs.h,v 1.20 2006/04/11 17:56:49 derick Exp $ */ #ifndef __TIMELIB_STRUCTS_H__ #define __TIMELIB_STRUCTS_H__ @@ -183,9 +183,10 @@ #define TIMELIB_ZONETYPE_ABBR 2 #define TIMELIB_ZONETYPE_ID 3 -#define SECS_PER_DAY 86400 -#define DAYS_PER_YEAR 365 -#define DAYS_PER_LYEAR 366 +#define SECS_PER_ERA 12622780800L +#define SECS_PER_DAY 86400 +#define DAYS_PER_YEAR 365 +#define DAYS_PER_LYEAR 366 #define timelib_is_leap(y) ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) http://cvs.php.net/viewcvs.cgi/php-src/ext/date/lib/tm2unixtime.c?r1=1.15&r2=1.16&diff_format=u Index: php-src/ext/date/lib/tm2unixtime.c diff -u php-src/ext/date/lib/tm2unixtime.c:1.15 php-src/ext/date/lib/tm2unixtime.c:1.16 --- php-src/ext/date/lib/tm2unixtime.c:1.15 Sun Jan 1 13:09:49 2006 +++ php-src/ext/date/lib/tm2unixtime.c Tue Apr 11 17:56:49 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: tm2unixtime.c,v 1.15 2006/01/01 13:09:49 sniper Exp $ */ +/* $Id: tm2unixtime.c,v 1.16 2006/04/11 17:56:49 derick Exp $ */ #include "timelib.h" @@ -135,6 +135,13 @@ { timelib_sll i; timelib_sll res = 0; + timelib_sll eras; + + eras = (year - 1970) / 400; + if (eras != 0) { + year = year - (eras * 400); + res += (SECS_PER_ERA * eras); + } if (year >= 1970) { for (i = year - 1; i >= 1970; i--) { http://cvs.php.net/viewcvs.cgi/php-src/ext/date/tests/bug36988.phpt?view=markup&rev=1.1 Index: php-src/ext/date/tests/bug36988.phpt +++ php-src/ext/date/tests/bug36988.phpt --TEST-- Bug #36988 (mktime freezes on long numbers) --FILE-- <?php $start = microtime(true); $a = mktime(1, 1, 1, 1, 1, 11111111111); echo (microtime(true) - $start) < 1 ? "smaller than one second" : "more than a second"; ?> --EXPECT-- smaller than one second
-- Give me your money at @ <http://pecl.php.net/wishlist.php/sniper> Donating money may make me happier and friendlier for a limited period! Death to all 4 letter abbreviations starting with P! -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php