Revision: 1903 http://trac.macosforge.org/projects/ruby/changeset/1903 Author: lsansonetti@apple.com Date: 2009-06-19 21:49:53 -0700 (Fri, 19 Jun 2009) Log Message: ----------- undef_method: now works for >0 arity selectors Modified Paths: -------------- MacRuby/branches/experimental/vm.cpp Modified: MacRuby/branches/experimental/vm.cpp =================================================================== --- MacRuby/branches/experimental/vm.cpp 2009-06-20 04:49:25 UTC (rev 1902) +++ MacRuby/branches/experimental/vm.cpp 2009-06-20 04:49:53 UTC (rev 1903) @@ -1714,15 +1714,17 @@ rb_vm_undef_method(Class klass, const char *name, bool must_exist) { rb_vm_method_node_t *node = NULL; - SEL sel = sel_registerName(name); - if (!rb_vm_lookup_method((Class)klass, sel, NULL, &node)) { + if (!rb_vm_lookup_method2((Class)klass, rb_intern(name), NULL, NULL, + &node)) { if (must_exist) { rb_raise(rb_eNameError, "undefined method `%s' for %s `%s'", - name, TYPE(klass) == T_MODULE ? "module" : "class", - name); + name, + TYPE(klass) == T_MODULE ? "module" : "class", + rb_class2name((VALUE)klass)); } assert(name[strlen(name) - 1] != ':'); + SEL sel = sel_registerName(name); class_replaceMethod((Class)klass, sel, NULL, "@@:"); }
participants (1)
-
source_changes@macosforge.org