diff options
Diffstat (limited to 'time.c')
-rw-r--r-- | time.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -683,7 +683,9 @@ num_exact(VALUE v) default: if ((tmp = rb_check_funcall(v, rb_intern("to_r"), 0, NULL)) != Qundef) { - if (rb_respond_to(v, rb_intern("to_str"))) goto typeerror; + /* test to_int method availability to reject non-Numeric + * objects such as String, Time, etc which have to_r method. */ + if (!rb_respond_to(v, rb_intern("to_int"))) goto typeerror; v = tmp; break; } |