summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--time.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c93ea20767..704934cce8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 2 21:25:55 2012 Tanaka Akira <akr@fsij.org>
+
+ * time.c (timew_out_of_timet_range): specialization for
+ SIZEOF_TIME_T == SIZEOF_INT64_T.
+
Mon Jul 2 17:06:32 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* class.c (rb_include_module): include modules after the origin.
diff --git a/time.c b/time.c
index 5a50808553..b27ad95b92 100644
--- a/time.c
+++ b/time.c
@@ -1741,6 +1741,19 @@ timew_out_of_timet_range(wideval_t timew)
return 0;
}
#endif
+#if SIZEOF_TIME_T == SIZEOF_INT64_T
+ if (FIXWV_P(timew)) {
+ wideint_t t = FIXWV2WINT(timew);
+ if (~(time_t)0 <= 0) {
+ return 0;
+ }
+ else {
+ if (t < 0)
+ return 1;
+ return 0;
+ }
+ }
+#endif
timexv = w2v(timew);
if (lt(timexv, mul(INT2FIX(TIME_SCALE), TIMET2NUM(TIMET_MIN))) ||
le(mul(INT2FIX(TIME_SCALE), add(TIMET2NUM(TIMET_MAX), INT2FIX(1))), timexv))