[vala/staging] codegen: Replace hardcoded "gpointer" references (POSIX)



commit a62d95ffe7b72e8383b16c9eea9de13b156800be
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sat Oct 19 00:12:26 2019 +0200

    codegen: Replace hardcoded "gpointer" references (POSIX)
    
    Only applied up to CCodeDelegateModule

 codegen/valaccodearraymodule.vala | 12 ++++++------
 codegen/valaccodebasemodule.vala  | 31 ++++++++++++++++---------------
 2 files changed, 22 insertions(+), 21 deletions(-)
---
diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
index 4a610e0aa..e609a1031 100644
--- a/codegen/valaccodearraymodule.vala
+++ b/codegen/valaccodearraymodule.vala
@@ -261,7 +261,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                var cforiter = new CCodeAssignment (new CCodeIdentifier ("i"), new CCodeBinaryExpression 
(CCodeBinaryOperator.PLUS, new CCodeIdentifier ("i"), new CCodeConstant ("1")));
                ccode.open_for (cforinit, cforcond, cforiter);
 
-               var cptrarray = new CCodeCastExpression (new CCodeIdentifier ("array"), "gpointer*");
+               var cptrarray = new CCodeCastExpression (new CCodeIdentifier ("array"), "%s*".printf 
(get_ccode_name (pointer_type)));
                var cea = new CCodeElementAccess (cptrarray, new CCodeIdentifier ("i"));
 
                var cfreecond = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, cea, new 
CCodeConstant ("NULL"));
@@ -279,7 +279,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                var fun = new CCodeFunction ("_vala_array_destroy", "void");
                fun.modifiers = CCodeModifiers.STATIC;
-               fun.add_parameter (new CCodeParameter ("array", "gpointer"));
+               fun.add_parameter (new CCodeParameter ("array", get_ccode_name (pointer_type)));
                fun.add_parameter (new CCodeParameter ("array_length", get_ccode_name (int_type)));
                fun.add_parameter (new CCodeParameter ("destroy_func", "GDestroyNotify"));
 
@@ -303,7 +303,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                fun = new CCodeFunction ("_vala_array_free", "void");
                fun.modifiers = CCodeModifiers.STATIC;
-               fun.add_parameter (new CCodeParameter ("array", "gpointer"));
+               fun.add_parameter (new CCodeParameter ("array", get_ccode_name (pointer_type)));
                fun.add_parameter (new CCodeParameter ("array_length", get_ccode_name (int_type)));
                fun.add_parameter (new CCodeParameter ("destroy_func", "GDestroyNotify"));
 
@@ -333,7 +333,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                // FIXME will leak memory if that's not the case
                var fun = new CCodeFunction ("_vala_array_move", "void");
                fun.modifiers = CCodeModifiers.STATIC;
-               fun.add_parameter (new CCodeParameter ("array", "gpointer"));
+               fun.add_parameter (new CCodeParameter ("array", get_ccode_name (pointer_type)));
                fun.add_parameter (new CCodeParameter ("element_size", "gsize"));
                fun.add_parameter (new CCodeParameter ("src", get_ccode_name (int_type)));
                fun.add_parameter (new CCodeParameter ("dest", get_ccode_name (int_type)));
@@ -393,7 +393,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
        public override void append_vala_array_length () {
                var fun = new CCodeFunction ("_vala_array_length", get_ccode_name (int_type));
                fun.modifiers = CCodeModifiers.STATIC;
-               fun.add_parameter (new CCodeParameter ("array", "gpointer"));
+               fun.add_parameter (new CCodeParameter ("array", get_ccode_name (pointer_type)));
 
                push_function (fun);
 
@@ -404,7 +404,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                var array_check = new CCodeIdentifier ("array");
                ccode.open_if (array_check);
 
-               var array_element_check = new CCodeElementAccess (new CCodeCastExpression (new 
CCodeIdentifier ("array"), "gpointer*"), new CCodeConstant ("length"));
+               var array_element_check = new CCodeElementAccess (new CCodeCastExpression (new 
CCodeIdentifier ("array"), "%s*".printf (get_ccode_name (pointer_type))), new CCodeConstant ("length"));
                ccode.open_while (array_element_check);
                ccode.add_expression (new CCodeUnaryExpression (CCodeUnaryOperator.POSTFIX_INCREMENT, new 
CCodeIdentifier ("length")));
                ccode.close ();
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 97bb84ce7..ddce144e1 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -305,6 +305,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
        public DataType regex_type;
        public DataType float_type;
        public DataType double_type;
+       public DataType pointer_type;
        public TypeSymbol gtype_type;
        public TypeSymbol gobject_type;
        public ErrorType gerror_type;
@@ -514,11 +515,15 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                        dbus_proxy_type = (TypeSymbol) glib_ns.scope.lookup ("DBusProxy");
 
-                       delegate_target_type = new StructValueType ((Struct) glib_ns.scope.lookup 
("pointer"));
+                       pointer_type = new StructValueType ((Struct) glib_ns.scope.lookup ("pointer"));
+
+                       delegate_target_type = pointer_type;
                        destroy_notify = (Delegate) glib_ns.scope.lookup ("DestroyNotify");
                        delegate_target_destroy_type = new DelegateType (destroy_notify);
                } else {
-                       delegate_target_type = new PointerType (new VoidType ());
+                       pointer_type = new PointerType (new VoidType ());
+
+                       delegate_target_type = pointer_type;
                        destroy_notify = new Delegate ("ValaDestroyNotify", new VoidType ());
                        destroy_notify.add_parameter (new Parameter ("data", new PointerType (new VoidType 
())));
                        destroy_notify.has_target = false;
@@ -2122,7 +2127,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                                if (m.coroutine) {
                                        // capture async data to allow invoking callback from inside closure
-                                       data.add_field ("gpointer", "_async_data_");
+                                       data.add_field (get_ccode_name (pointer_type), "_async_data_");
 
                                        // async method is suspended while waiting for callback,
                                        // so we never need to care about memory management of async data
@@ -3143,7 +3148,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                var function = new CCodeFunction (destroy_func, "void");
                function.modifiers = CCodeModifiers.STATIC;
-               function.add_parameter (new CCodeParameter ("data", "gpointer"));
+               function.add_parameter (new CCodeParameter ("data", get_ccode_name (pointer_type)));
                push_function (function);
 
                ccode.add_declaration (get_ccode_name (type), new CCodeVariableDeclarator ("self"));
@@ -3220,7 +3225,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                var function = new CCodeFunction (free0_func, "void");
                                function.modifiers = CCodeModifiers.STATIC;
 
-                               function.add_parameter (new CCodeParameter ("var", "gpointer"));
+                               function.add_parameter (new CCodeParameter ("var", get_ccode_name 
(pointer_type)));
 
                                push_function (function);
 
@@ -4474,12 +4479,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        if (dupid.name == "g_strdup") {
                                dup0_func = dupid.name;
                        } else if (add_wrapper (dup0_func)) {
-                               string pointer_cname = "gpointer";
-                               if (context.profile == Profile.POSIX) {
-                                       pointer_cname = "void *";
-                               }
-                               var dup0_fun = new CCodeFunction (dup0_func, pointer_cname);
-                               dup0_fun.add_parameter (new CCodeParameter ("self", pointer_cname));
+                               var dup0_fun = new CCodeFunction (dup0_func, get_ccode_name (pointer_type));
+                               dup0_fun.add_parameter (new CCodeParameter ("self", get_ccode_name 
(pointer_type)));
                                dup0_fun.modifiers = CCodeModifiers.STATIC;
 
                                push_function (dup0_fun);
@@ -4518,7 +4519,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                        if (type is GenericType) {
                                // cast from gconstpointer to gpointer as GBoxedCopyFunc expects gpointer
-                               ccall.add_argument (new CCodeCastExpression (cexpr, "gpointer"));
+                               ccall.add_argument (new CCodeCastExpression (cexpr, get_ccode_name 
(pointer_type)));
                        } else {
                                ccall.add_argument (cexpr);
                        }
@@ -4545,7 +4546,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                                // cast from gconstpointer to gpointer as methods in
                                // generic classes may not return gconstpointer
-                               cifnull = new CCodeCastExpression (cexpr, "gpointer");
+                               cifnull = new CCodeCastExpression (cexpr, get_ccode_name (pointer_type));
                        }
 
                        if (is_ref_function_void (type)) {
@@ -5797,9 +5798,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                unowned SemanticAnalyzer analyzer = context.analyzer;
                var result = cexpr;
                if (analyzer.is_signed_integer_type_argument (actual_type)) {
-                       result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), 
"gpointer");
+                       result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), 
get_ccode_name (pointer_type));
                } else if (analyzer.is_unsigned_integer_type_argument (actual_type)) {
-                       result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), 
"gpointer");
+                       result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), 
get_ccode_name (pointer_type));
                }
                return result;
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]