Modified: MacRuby/branches/experimental/roxor.cpp (1085 => 1086)
--- MacRuby/branches/experimental/roxor.cpp 2009-03-23 05:36:11 UTC (rev 1085)
+++ MacRuby/branches/experimental/roxor.cpp 2009-03-23 06:47:43 UTC (rev 1086)
@@ -2798,19 +2798,23 @@
NODE *super = node->nd_super;
if (defineClassFunc == NULL) {
- // VALUE rb_vm_define_class(ID path, VALUE outer, VALUE super, unsigned char is_module);
- defineClassFunc = cast<Function>(module->getOrInsertFunction("rb_vm_define_class",
- RubyObjTy, IntTy, RubyObjTy, RubyObjTy, Type::Int8Ty, NULL));
+ // VALUE rb_vm_define_class(ID path, VALUE outer, VALUE super,
+ // unsigned char is_module);
+ defineClassFunc = cast<Function>(module->getOrInsertFunction(
+ "rb_vm_define_class",
+ RubyObjTy, IntTy, RubyObjTy, RubyObjTy,
+ Type::Int8Ty, NULL));
}
std::vector<Value *> params;
params.push_back(ConstantInt::get(IntTy, (long)path));
- params.push_back(compile_current_class());
+ params.push_back(compile_class_path(node->nd_cpath));
params.push_back(super == NULL ? zeroVal : compile_node(super));
- params.push_back(ConstantInt::get(Type::Int8Ty, nd_type(node) == NODE_MODULE ? 1 : 0));
+ params.push_back(ConstantInt::get(Type::Int8Ty,
+ nd_type(node) == NODE_MODULE ? 1 : 0));
- classVal = CallInst::Create(defineClassFunc, params.begin(), params.end(), "", bb);
+ classVal = compile_protected_call(defineClassFunc, params);
}
NODE *body = node->nd_body;
Modified: MacRuby/branches/experimental/variable.c (1085 => 1086)
--- MacRuby/branches/experimental/variable.c 2009-03-23 05:36:11 UTC (rev 1085)
+++ MacRuby/branches/experimental/variable.c 2009-03-23 06:47:43 UTC (rev 1086)
@@ -1,4 +1,3 @@
-/*
* This file is covered by the Ruby license. See COPYING for more details.
*
* Copyright (C) 2007-2008, Apple Inc. All rights reserved.
@@ -225,7 +224,9 @@
{
VALUE path = classname(mod);
- if (!NIL_P(path)) return rb_str_dup(path);
+ if (!NIL_P(path)) {
+ return rb_str_dup(path);
+ }
return path;
}