[macruby-changes] [1424] MacRuby/branches/experimental/roxor.cpp
source_changes at macosforge.org
source_changes at macosforge.org
Fri Apr 17 17:56:45 PDT 2009
Revision: 1424
http://trac.macosforge.org/projects/ruby/changeset/1424
Author: lsansonetti at apple.com
Date: 2009-04-17 17:56:43 -0700 (Fri, 17 Apr 2009)
Log Message:
-----------
work in progress
Modified Paths:
--------------
MacRuby/branches/experimental/roxor.cpp
Modified: MacRuby/branches/experimental/roxor.cpp
===================================================================
--- MacRuby/branches/experimental/roxor.cpp 2009-04-17 08:21:59 UTC (rev 1423)
+++ MacRuby/branches/experimental/roxor.cpp 2009-04-18 00:56:43 UTC (rev 1424)
@@ -363,7 +363,7 @@
VALUE val;
};
-typedef VALUE rb_vm_objc_stub_t(IMP imp, VALUE self, SEL sel, int argc,
+typedef VALUE rb_vm_objc_stub_t(IMP imp, id self, SEL sel, int argc,
const VALUE *argv);
struct mcache {
@@ -4799,11 +4799,39 @@
extern "C"
VALUE
-rb_vm_ocval_to_rval(void *ocval)
+rb_vm_ocval_to_rval(id ocval)
{
return SPECIAL_CONST_P(ocval) ? (VALUE)ocval : OC2RB(ocval);
}
+extern "C"
+VALUE
+rb_vm_long_long_to_rval(long long l)
+{
+ return LL2NUM(l);
+}
+
+extern "C"
+VALUE
+rb_vm_ulong_long_to_rval(unsigned long long l)
+{
+ return ULL2NUM(l);
+}
+
+extern "C"
+VALUE
+rb_vm_int_to_rval(int val)
+{
+ return INT2NUM(val);
+}
+
+extern "C"
+VALUE
+rb_vm_uint_to_rval(unsigned int val)
+{
+ return UINT2NUM(val);
+}
+
Value *
RoxorCompiler::compile_conversion_to_ruby(const char *type, const Type *llvm_type,
Value *val)
@@ -4824,6 +4852,22 @@
func_name = "rb_vm_ocval_to_rval";
break;
+ case _C_INT:
+ func_name = "rb_vm_int_to_rval";
+ break;
+
+ case _C_UINT:
+ func_name = "rb_vm_uint_to_rval";
+ break;
+
+ case _C_LNG_LNG:
+ func_name = "rb_vm_long_long_to_rval";
+ break;
+
+ case _C_ULNG_LNG:
+ func_name = "rb_vm_ulong_long_to_rval";
+ break;
+
default:
printf("unrecognized compile type `%s' to Ruby - aborting\n", type);
abort();
@@ -4879,6 +4923,10 @@
case _C_DBL:
return Type::DoubleTy;
+
+ case _C_LNG_LNG:
+ case _C_ULNG_LNG:
+ return Type::Int64Ty;
}
printf("unrecognized runtime type `%s' - aborting\n", type);
@@ -6376,7 +6424,7 @@
argc,
(VALUE *)argv);
#endif
- return (*ocache.stub)(ocache.imp, self, sel, argc, argv);
+ return (*ocache.stub)(ocache.imp, RB2OC(self), sel, argc, argv);
}
#undef rcache
#undef ocache
@@ -7548,9 +7596,9 @@
}
static VALUE
-builtin_ostub1(IMP imp, VALUE self, SEL sel, int argc, VALUE *argv)
+builtin_ostub1(IMP imp, id self, SEL sel, int argc, VALUE *argv)
{
- return ((VALUE (*)(VALUE, SEL))*imp)(self, sel);
+ return ((VALUE (*)(id, SEL))*imp)(self, sel);
}
static void
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090417/8608533c/attachment.html>
More information about the macruby-changes
mailing list