[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