[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