summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-12 16:42:27 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-12 16:42:27 +0000
commit4fffacd9a51227cf043873d5ac3e961a2ed0a2f5 (patch)
tree915c60a34658fbee84299f87724fe7c932299c8b
parent7adb8681f015fd958288edd9c5d78484764ec34a (diff)
merge revision(s) 23259,24059:
* time.c (time_timeval): check out-of-range. [ruby-core:23282] [Bug #1396] * time.c (time_timeval): rounds subsecond toward zero. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@24060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--time.c12
-rw-r--r--version.h8
3 files changed, 20 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 11185b6488..b67927fe92 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon Jul 13 01:36:54 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * time.c (time_timeval): rounds subsecond toward zero.
+
+Mon Jul 13 01:36:54 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * time.c (time_timeval): check out-of-range. [ruby-core:23282]
+ [Bug #1396]
+
Thu Jul 9 17:58:03 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (proc_invoke): shares dmethod scope local variables.
diff --git a/time.c b/time.c
index fb1ab30821..5cd1c9ed3a 100644
--- a/time.c
+++ b/time.c
@@ -192,15 +192,17 @@ time_timeval(time, interval)
double f, d;
d = modf(RFLOAT(time)->value, &f);
- if (d < 0) {
- d += 1;
- f -= 1;
- }
+ if (d >= 0) {
+ t.tv_usec = (int)(d*1e6+0.5);
+ }
+ else if ((t.tv_usec = (int)(-d*1e6+0.5)) > 0) {
+ t.tv_usec = 1000000 - t.tv_usec;
+ f -= 1;
+ }
t.tv_sec = (time_t)f;
if (f != t.tv_sec) {
rb_raise(rb_eRangeError, "%f out of Time range", RFLOAT(time)->value);
}
- t.tv_usec = (time_t)(d*1e6+0.5);
}
break;
diff --git a/version.h b/version.h
index a8167fdceb..5bba3f1321 100644
--- a/version.h
+++ b/version.h
@@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2009-07-09"
+#define RUBY_RELEASE_DATE "2009-07-13"
#define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20090709
-#define RUBY_PATCHLEVEL 181
+#define RUBY_RELEASE_CODE 20090713
+#define RUBY_PATCHLEVEL 182
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 7
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 7
-#define RUBY_RELEASE_DAY 9
+#define RUBY_RELEASE_DAY 13
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];