aboutsummaryrefslogtreecommitdiffstats
path: root/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'time.c')
-rw-r--r--time.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/time.c b/time.c
index 70f0bb65ae..2d5edbe338 100644
--- a/time.c
+++ b/time.c
@@ -2425,9 +2425,14 @@ static VALUE
time_to_r(VALUE time)
{
struct time_object *tobj;
+ VALUE v;
GetTimeval(time, tobj);
- return rb_time_unmagnify(tobj->timexv);
+ v = rb_time_unmagnify(tobj->timexv);
+ if (TYPE(v) != T_RATIONAL) {
+ v = rb_convert_type(v, T_RATIONAL, "Rational", "to_r");
+ }
+ return v;
}
/*