nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / src / compiler / compiler_ffi.nit
index ac7bad3..42423f9 100644 (file)
@@ -49,6 +49,7 @@ extern void nitni_global_ref_incr(void*);
 extern void nitni_global_ref_decr(void*);
 """
 
+               var cflags = self.cflags[""].join(" ")
                nitni_ccu.write_as_nitni(self, v.compiler.modelbuilder.compile_dir)
 
                for file in nitni_ccu.files do
@@ -76,11 +77,8 @@ extern void nitni_global_ref_decr(void*);
 
        redef fun collect_linker_libs
        do
-               var s = ldflags
-               if s.is_empty then return null
-               var res = new ArraySet[String]
-               res.add s
-               return res
+               if not self.ldflags.keys.has("") then return null
+               return self.ldflags[""]
        end
 
        private var compiled_callbacks = new Array[NitniCallback]
@@ -390,7 +388,7 @@ redef class MExplicitCall
                var recv_var = null
                if mproperty.is_init then
                        var recv_mtype = recv_mtype
-                       recv_var = nitni_visitor.init_instance(recv_mtype)
+                       recv_var = nitni_visitor.init_instance_or_extern(recv_mtype)
                        nitni_visitor.add("{mtype.ctype} recv /* var self: {mtype} */;")
                        nitni_visitor.add("recv = {recv_var};")
                else