Merge: FFI clean up
authorJean Privat <jean@pryen.org>
Mon, 8 Jun 2015 15:03:10 +0000 (11:03 -0400)
committerJean Privat <jean@pryen.org>
Mon, 8 Jun 2015 15:03:10 +0000 (11:03 -0400)
Pull-Request: #1442
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

1  2 
src/nitni/nitni_base.nit

diff --combined src/nitni/nitni_base.nit
@@@ -71,14 -71,15 +71,15 @@@ redef class MTyp
  
        # Representation of this type in C for the internal of the system
        # Hides extern types.
-       fun cname_blind: String is abstract
+       fun cname_blind: String do return "struct nitni_instance *"
  
        # Representation of this type in mangled C
        #   Object -> Object
        #   Pointer -> Pointer
        fun mangled_cname: String is abstract
  
-       # Does this types has a primitive reprensentation
+       # Does this type have a primitive representation?
+       #
        #   type Object is_primitive? false
        #   type Pointer is_primitive? true
        fun is_cprimitive: Bool is abstract
@@@ -111,7 -112,7 +112,7 @@@ redef class MClassTyp
                if name == "Byte" then return "unsigned char"
                if name == "NativeString" then return "unsigned char*"
                if mclass.kind == extern_kind then return "void*"
-               return "struct nitni_instance *"
+               return super
        end
  
        # Name of this type in C for normal classes (not extern and not primitive)
        redef fun mangled_cname do return mclass.name
  
        redef fun is_cprimitive do return mclass.kind == extern_kind or
 -                      (once ["Bool", "Char", "Float", "Int", "NativeString"]).has(mclass.name)
 +                      (once ["Bool", "Char", "Float", "Int", "NativeString", "Byte"]).has(mclass.name)
  end
  
  redef class MNullableType
        redef fun cname do return mangled_cname
-       redef fun cname_blind do return "struct nitni_instance *"
        redef fun mangled_cname do return "nullable_{mtype.mangled_cname}"
        redef fun is_cprimitive do return false
  end
  
  redef class MVirtualType
-       redef fun mangled_cname: String do return to_s
+       redef fun mangled_cname do return to_s
  end
  
  redef class MGenericType