src/ffi: avoid duplicating visibility attributes of JNI native functions in C
[nit.git] / src / ffi / ffi_base.nit
index 3b53826..b8a8103 100644 (file)
@@ -63,14 +63,14 @@ class FFILanguageAssignationPhase
                        var identified = v.identify_language(n)
                        if identified then
                                if found and identified then
-                                       toolcontext.error(n.location, "Two languages identified as possible handlers.")
+                                       toolcontext.error(n.location, "FFI Error: two languages identified as possible handlers.")
                                end
                                n.language = v
                                found = true
                        end
                end
 
-               if not found then toolcontext.error(n.location, "Unsupported language.")
+               if not found then toolcontext.error(n.location, "FFI Error: unsupported language.")
        end
 end
 
@@ -99,7 +99,9 @@ end
 # Visitor for a specific languages. Works kinda like a `Phase` and is executed
 # by a `Phase`.
 class FFILanguage
-       init(ffi_language_assignation_phase: FFILanguageAssignationPhase)
+       var ffi_language_assignation_phase: FFILanguageAssignationPhase
+
+       init
        do
                ffi_language_assignation_phase.languages.add(self)
        end
@@ -150,10 +152,10 @@ end
 redef class CCompilationUnit
        fun write_as_impl(mmodule: MModule, compdir: String)
        do
-               var base_name = "{mmodule.name}._ffi"
+               var base_name = "{mmodule.c_name}._ffi"
 
                var h_file = "{base_name}.h"
-               var guard = "{mmodule.cname.to_s.to_upper}_NIT_H"
+               var guard = "{mmodule.c_name.to_upper}_NIT_H"
                write_header_to_file(mmodule, "{compdir}/{h_file}", new Array[String], guard)
 
                var c_file = "{base_name}.c"
@@ -164,7 +166,7 @@ redef class CCompilationUnit
 
        fun write_header_to_file(mmodule: MModule, file: String, includes: Array[String], guard: String)
        do
-               var stream = new OFStream.open( file )
+               var stream = new FileWriter.open( file )
 
                # header comments
                var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"
@@ -185,7 +187,7 @@ redef class CCompilationUnit
 
        fun write_body_to_file(mmodule: MModule, file: String, includes: Array[String])
        do
-               var stream = new OFStream.open(file)
+               var stream = new FileWriter.open(file)
 
                var module_info = "/*\n\tExtern implementation of Nit module {mmodule.name}\n*/\n"