From 6a80947a4b7ebb637602ae105ee9b2d20ae62fce Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 23 Aug 2012 11:36:42 +0000 Subject: [PATCH] * class.c (singleton_class_of): flonum can't have singleton class. * vm.c (vm_define_method): flonum can't have singleton method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ class.c | 2 +- vm.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bb07bb370..a2278ec6b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Aug 23 20:34:32 2012 NAKAMURA Usaku + + * class.c (singleton_class_of): flonum can't have singleton class. + + * vm.c (vm_define_method): flonum can't have singleton method. + Thu Aug 23 19:18:33 2012 NAKAMURA Usaku * common.mk (win32/*): macro RUBY_H_INCLUDES is not defined there, diff --git a/class.c b/class.c index 2ee5b8867a..1d871fb7ee 100644 --- a/class.c +++ b/class.c @@ -1315,7 +1315,7 @@ singleton_class_of(VALUE obj) { VALUE klass; - if (FIXNUM_P(obj) || SYMBOL_P(obj)) { + if (FIXNUM_P(obj) || FLONUM_P(obj) || SYMBOL_P(obj)) { rb_raise(rb_eTypeError, "can't define singleton"); } if (SPECIAL_CONST_P(obj)) { diff --git a/vm.c b/vm.c index ed4d31e95f..55ccfe7939 100644 --- a/vm.c +++ b/vm.c @@ -1857,7 +1857,7 @@ vm_define_method(rb_thread_t *th, VALUE obj, ID id, VALUE iseqval, } if (is_singleton) { - if (FIXNUM_P(obj) || SYMBOL_P(obj)) { + if (FIXNUM_P(obj) || FLONUM_P(obj) || SYMBOL_P(obj)) { rb_raise(rb_eTypeError, "can't define singleton method \"%s\" for %s", rb_id2name(id), rb_obj_classname(obj));