# The C type for the function pointer.
var c_funptrtype: String is lazy do return "{c_ret}(*){c_sig}"
- # The arguments, as generated by `compile_to_c`
- private var arguments: Array[RuntimeVariable] is noinit
-
redef fun compile_to_c(compiler)
do
var mmethoddef = self.mmethoddef
comment.append(": {ret}")
end
compiler.provide_declaration(self.c_name, "{sig};")
- self.arguments = arguments.to_a
v.add_decl("/* method {self} for {comment} */")
v.add_decl("{sig} \{")
fun compile_trampolines(compiler: SeparateCompiler)
do
var recv = self.mmethoddef.mclassdef.bound_mtype
- var selfvar = arguments.first
+ var selfvar = new RuntimeVariable("self", called_recv, recv)
var ret = called_signature.return_mtype
+ var arguments = ["self"]
+ for i in [0..called_signature.arity[ do arguments.add "p{i}"
if mmethoddef.is_intro and not recv.is_c_primitive then
var m = mmethoddef.mproperty