Revision
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

Diff

Modified: MacRuby/branches/experimental/vm.cpp (1902 => 1903)


--- 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, "@@:");
     }