diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-02 04:07:39 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-02 04:07:39 +0000 |
commit | c921d0e154fe805bd597e1436f264d0d333cfc7e (patch) | |
tree | 1e269ea0571960416cbd57b0577ab5f47e78fc91 /time.c | |
parent | 8f610b17d31a1cb80f766fd0211d15153a2bcc46 (diff) |
merge revision(s) 39967: [Backport #8194]
* time.c (num_exact): use to_r method only if to_int method is
available.
[ruby-core:53764] [Bug #8173] reported by Hiro Asari.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@40054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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; } |