diff --git a/ChangeLog b/ChangeLog index 9b4d5a29ae..9730603f84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Oct 28 04:38:06 2012 Koichi Sasada + + * vm.c (vm_define_method): remove type and frozen checking. + Checking is done in `rb_singleton_class()'. + Sun Oct 28 00:49:06 2012 Nobuyoshi Nakada * parse.y (assign_in_cond): warn for static content object asignments diff --git a/vm.c b/vm.c index c9a6866d6f..39efee27c9 100644 --- a/vm.c +++ b/vm.c @@ -1872,14 +1872,7 @@ vm_define_method(rb_thread_t *th, VALUE obj, ID id, VALUE iseqval, } if (is_singleton) { - if (FIXNUM_P(obj) || SYMBOL_P(obj) || CLASS_OF(obj) == rb_cFloat) { - rb_raise(rb_eTypeError, - "can't define singleton method \"%s\" for %s", - rb_id2name(id), rb_obj_classname(obj)); - } - - rb_check_frozen(obj); - klass = rb_singleton_class(obj); + klass = rb_singleton_class(obj); /* class and frozen checked in this API */ noex = NOEX_PUBLIC; }