[macruby-changes] [4408] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Aug 5 13:30:53 PDT 2010
Revision: 4408
http://trac.macosforge.org/projects/ruby/changeset/4408
Author: lsansonetti at apple.com
Date: 2010-08-05 13:30:53 -0700 (Thu, 05 Aug 2010)
Log Message:
-----------
fixed a compiler bug where it would assume that the argument of the undef keyword would always be a literal symbol
Modified Paths:
--------------
MacRuby/trunk/compiler.cpp
MacRuby/trunk/vm.cpp
Modified: MacRuby/trunk/compiler.cpp
===================================================================
--- MacRuby/trunk/compiler.cpp 2010-08-05 08:12:49 UTC (rev 4407)
+++ MacRuby/trunk/compiler.cpp 2010-08-05 20:30:53 UTC (rev 4408)
@@ -4088,22 +4088,18 @@
case NODE_UNDEF:
{
if (undefFunc == NULL) {
- // VALUE rb_vm_undef(VALUE klass, ID name,
+ // VALUE rb_vm_undef2(VALUE klass, VALUE sym,
// unsigned char dynamic_class);
undefFunc =
cast<Function>(module->getOrInsertFunction(
- "rb_vm_undef",
- VoidTy, RubyObjTy, IntTy, Int8Ty, NULL));
+ "rb_vm_undef2",
+ VoidTy, RubyObjTy, RubyObjTy, Int8Ty, NULL));
}
assert(node->u2.node != NULL);
- VALUE name = node->u2.node->nd_lit;
- assert(TYPE(name) == T_SYMBOL);
- ID name_id = SYM2ID(name);
-
Value *args[] = {
compile_current_class(),
- compile_id(name_id),
+ compile_node(node->u2.node),
ConstantInt::get(Int8Ty, dynamic_class ? 1 : 0)
};
compile_protected_call(undefFunc, args, args + 3);
Modified: MacRuby/trunk/vm.cpp
===================================================================
--- MacRuby/trunk/vm.cpp 2010-08-05 08:12:49 UTC (rev 4407)
+++ MacRuby/trunk/vm.cpp 2010-08-05 20:30:53 UTC (rev 4408)
@@ -1541,6 +1541,14 @@
}
extern "C"
+void
+rb_vm_undef2(VALUE klass, VALUE sym, unsigned char dynamic_class)
+{
+ assert(TYPE(sym) == T_SYMBOL);
+ return rb_vm_undef(klass, SYM2ID(sym), dynamic_class);
+}
+
+extern "C"
VALUE
rb_vm_defined(VALUE self, int type, VALUE what, VALUE what2)
{
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100805/d9b8f926/attachment.html>
More information about the macruby-changes
mailing list