[macruby-changes] [1903] MacRuby/branches/experimental/vm.cpp

source_changes at macosforge.org source_changes at macosforge.org
Fri Jun 19 21:49:53 PDT 2009


Revision: 1903
          http://trac.macosforge.org/projects/ruby/changeset/1903
Author:   lsansonetti at 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, "@@:");
     }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090619/1ea35ecc/attachment.html>


More information about the macruby-changes mailing list