]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use ArrayType.length_type in type specific wrappers
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 15 Apr 2021 14:49:14 +0000 (16:49 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Thu, 15 Apr 2021 14:49:14 +0000 (16:49 +0200)
codegen/valaccodearraymodule.vala
codegen/valaccodemethodcallmodule.vala

index 7d23b8143388b2c351c161961f81f268b42b395d..d59538e4d1f3b396097569dab2f06f6c2f9724fb 100644 (file)
@@ -685,7 +685,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                push_function (function);
 
                if (requires_copy (array_type.element_type)) {
-                       ccode.add_declaration (get_ccode_name (int_type), new CCodeVariableDeclarator ("i"));
+                       ccode.add_declaration (get_ccode_name (array_type.length_type), new CCodeVariableDeclarator ("i"));
 
                        ccode.open_for (new CCodeAssignment (new CCodeIdentifier ("i"), new CCodeConstant ("0")),
                                           new CCodeBinaryExpression (CCodeBinaryOperator.LESS_THAN, new CCodeIdentifier ("i"), get_ccodenode (array_type.length)),
@@ -729,8 +729,8 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                function.modifiers = CCodeModifiers.STATIC;
 
                function.add_parameter (new CCodeParameter ("array", "%s *".printf (get_ccode_name (array_type))));
-               function.add_parameter (new CCodeParameter ("length", "%s*".printf (get_ccode_name (int_type))));
-               function.add_parameter (new CCodeParameter ("size", "%s*".printf (get_ccode_name (int_type))));
+               function.add_parameter (new CCodeParameter ("length", "%s*".printf (get_ccode_name (array_type.length_type))));
+               function.add_parameter (new CCodeParameter ("size", "%s*".printf (get_ccode_name (array_type.length_type))));
 
                push_function (function);
 
index c1ef29677b106795750861729bec9c367a2d7513..4d6a9ff5a60684bbeac188167d223c810c225a68 100644 (file)
@@ -852,7 +852,8 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
                        arg_it.next ();
                        var new_size = get_cvalue (arg_it.get ());
 
-                       var temp_decl = get_temp_variable (int_type);
+                       var array_type = (ArrayType) ma.inner.value_type;
+                       var temp_decl = get_temp_variable (array_type.length_type);
                        var temp_ref = get_variable_cexpression (temp_decl.name);
 
                        emit_temp_var (temp_decl);
@@ -862,7 +863,6 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
 
                        var clen = get_array_length_cexpression (ma.inner, 1);
                        var celems = get_cvalue (ma.inner);
-                       var array_type = (ArrayType) ma.inner.value_type;
                        var csizeof = new CCodeIdentifier ("sizeof (%s)".printf (get_ccode_name (array_type.element_type)));
                        var cdelta = new CCodeBinaryExpression (CCodeBinaryOperator.MINUS, temp_ref, clen);
                        var ccheck = new CCodeBinaryExpression (CCodeBinaryOperator.GREATER_THAN, temp_ref, clen);