From 4a9bca2496f66b44b9fff0377443715a03c6ddc7 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 29 Aug 2009 18:18:37 +0000 Subject: * time.c (init_leap_second_info): use TIMET_MAX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ time.c | 17 ++++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 629e11c902..808c4e7d6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Aug 30 03:17:25 2009 Tanaka Akira + + * time.c (init_leap_second_info): use TIMET_MAX. + Sun Aug 30 01:15:31 2009 NARUSE, Yui * ext/zlib/zlib.c (gzfile_read_all): use gzfile_newstr; diff --git a/time.c b/time.c index ef9f529d15..599abe2b2e 100644 --- a/time.c +++ b/time.c @@ -45,6 +45,9 @@ typedef unsigned LONG_LONG unsigned_time_t; # error cannot find integer type which size is same as time_t. #endif +#define TIMET_MAX (~(time_t)0 <= 0 ? (time_t)((~(unsigned_time_t)0) >> 1) : (~(unsigned_time_t)0)) +#define TIMET_MIN (~(time_t)0 <= 0 ? (time_t)(((unsigned_time_t)1) << (sizeof(time_t) * CHAR_BIT - 1)) : (time_t)0) + VALUE rb_cTime; static VALUE time_utc_offset _((VALUE)); @@ -515,7 +518,7 @@ init_leap_second_info() * So no one knows leap seconds in the future after the next year. */ if (this_year == 0) { - time_t now, max; + time_t now; struct tm *tm, result; struct vtm vtm; VALUE timev; @@ -525,13 +528,8 @@ init_leap_second_info() if (!tm) return; this_year = tm->tm_year; - max = ~(time_t)0; - if (max <= (time_t)0) { - /* time_t is signed */ - max = (~(unsigned_time_t)0) >> 1; - } - if (max - now < (time_t)(366*86400)) - known_leap_seconds_limit = max; + if (TIMET_MAX - now < (time_t)(366*86400)) + known_leap_seconds_limit = TIMET_MAX; else known_leap_seconds_limit = now + (time_t)(366*86400); @@ -879,9 +877,6 @@ timelocalv(struct vtm *vtm) return lt(vtm1.utc_offset, vtm2.utc_offset) ? timev1 : timev2; } -#define TIMET_MAX (~(time_t)0 <= 0 ? (time_t)((~(unsigned_time_t)0) >> 1) : (~(unsigned_time_t)0)) -#define TIMET_MIN (~(time_t)0 <= 0 ? (time_t)(((unsigned_time_t)1) << (sizeof(time_t) * CHAR_BIT - 1)) : (time_t)0) - static struct tm * localtime_with_gmtoff(const time_t *t, struct tm *result, long *gmtoff) { -- cgit v1.2.3