X-Git-Url: http://nitlanguage.org diff --git a/src/compiler_ffi.nit b/src/compiler_ffi.nit index 91b8f0b..6588b1b 100644 --- a/src/compiler_ffi.nit +++ b/src/compiler_ffi.nit @@ -29,7 +29,7 @@ redef class AModule redef fun finalize_ffi(v: AbstractCompilerVisitor, modelbuilder: ModelBuilder) do - finalize_ffi_wrapper(".nit_compile", v.compiler.mainmodule) + finalize_ffi_wrapper(v.compiler.modelbuilder.compile_dir, v.compiler.mainmodule) for file in ffi_files do v.compiler.extern_bodies.add(file) end @@ -46,7 +46,7 @@ redef class AModule nitni_ccu.header_c_types.add("#include \"{mmodule.name}._ffi.h\"\n") - nitni_ccu.write_as_nitni(self, ".nit_compile") + nitni_ccu.write_as_nitni(self, v.compiler.modelbuilder.compile_dir) for file in nitni_ccu.files do v.compiler.extern_bodies.add(new ExternCFile(file, c_compiler_options)) @@ -408,7 +408,7 @@ redef class MExplicitSuper var mmodule = from.mclassdef.mmodule # In nitni files, declare internal function as extern - var internal_csignature = mproperty.build_csignature(mclass_type, v.compiler.mainmodule, null, long_signature, from_c_call_context) + var internal_csignature = mproperty.build_csignature(mclass_type, v.compiler.mainmodule, "___super", long_signature, internal_call_context) ccu.header_decl.add("extern {internal_csignature};\n") # In nitni files, #define friendly as extern @@ -483,7 +483,7 @@ redef class MExplicitCast # special checks if from == to.as_nullable then # format A_is_null - ccu.header_decl.add("#define {from.mangled_cname}_is_null {from.mangled_cname}_is_a_{to.mangled_cname}\n") + ccu.header_decl.add("#define {from.mangled_cname}_is_null !{from.mangled_cname}_is_a_{to.mangled_cname}\n") end # @@ -491,7 +491,7 @@ redef class MExplicitCast # # In nitni files, declare internal function as extern - full_friendly_csignature = "{to.cname} {v.compiler.mainmodule.name }___{from.mangled_cname}_as_{to.mangled_cname}({from.cname_blind})" + full_friendly_csignature = "{to.cname_blind} {v.compiler.mainmodule.name }___{from.mangled_cname}_as_{to.mangled_cname}({from.cname_blind})" ccu.header_decl.add("extern {full_friendly_csignature};\n") # In nitni files, #define friendly as extern