]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Cast generic return value from g_ptr_array_index()
authorRico Tzschichholz <ricotz@ubuntu.com>
Fri, 26 Jan 2024 14:26:46 +0000 (15:26 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 28 Jan 2024 15:24:02 +0000 (16:24 +0100)
Use convert_from_generic_pointer() to generate C code without warnings
when accessing scalar elements from a GPtrArray.

Found by -Werror=int-conversion

In addition to f904c7e269c7f7b0a6dcefa4f8f892b981a71917

codegen/valaccodecontrolflowmodule.vala
tests/basic-types/gptrarray.c-expected
tests/control-flow/foreach.c-expected

index 9ecbced2f85826495994883a12a40b0786132a60..d88a9ce366940bde7d6adefc6f5e34bf806a659b 100644 (file)
@@ -361,6 +361,7 @@ public abstract class Vala.CCodeControlFlowModule : CCodeMethodModule {
                        get_item.add_argument (get_variable_cexpression (arr_index));
 
                        CCodeExpression element_expr = get_item;
+                       element_expr = convert_from_generic_pointer (element_expr, stmt.element_variable.variable_type);
 
                        if (stmt.type_reference.value_owned) {
                                element_expr = get_cvalue_ (copy_value (new GLibValue (stmt.type_reference, element_expr), stmt.element_variable));
index 73dd27e3b6bcf0ebed63df3d0c7d76075479cc4e..0d45713696193889736b5bacafe796d7aa1752e5 100644 (file)
@@ -451,7 +451,7 @@ _vala_main (void)
                        element_collection = _tmp21_;
                        for (element_index = 0; element_index < element_collection->len; element_index = element_index + 1) {
                                Foo* element = NULL;
-                               element = g_ptr_array_index (element_collection, element_index);
+                               element = (Foo*) g_ptr_array_index (element_collection, element_index);
                                {
                                        gint _tmp22_;
                                        Foo* _tmp23_;
@@ -503,7 +503,7 @@ _vala_main (void)
                        for (element_index = 0; element_index < element_collection->len; element_index = element_index + 1) {
                                Foo* _tmp31_;
                                Foo* element = NULL;
-                               _tmp31_ = _g_object_ref0 (g_ptr_array_index (element_collection, element_index));
+                               _tmp31_ = _g_object_ref0 ((Foo*) g_ptr_array_index (element_collection, element_index));
                                element = _tmp31_;
                                {
                                        gint _tmp32_;
@@ -694,7 +694,7 @@ _vala_main (void)
                        element_collection = _tmp94_;
                        for (element_index = 0; element_index < element_collection->len; element_index = element_index + 1) {
                                Foo* element = NULL;
-                               element = g_ptr_array_index (element_collection, element_index);
+                               element = (Foo*) g_ptr_array_index (element_collection, element_index);
                                {
                                        gint _tmp95_;
                                        Foo* _tmp96_;
@@ -746,7 +746,7 @@ _vala_main (void)
                        for (element_index = 0; element_index < element_collection->len; element_index = element_index + 1) {
                                Foo* _tmp104_;
                                Foo* element = NULL;
-                               _tmp104_ = _g_object_ref0 (g_ptr_array_index (element_collection, element_index));
+                               _tmp104_ = _g_object_ref0 ((Foo*) g_ptr_array_index (element_collection, element_index));
                                element = _tmp104_;
                                {
                                        gint _tmp105_;
index 0f9bd45f9d318341fffad630e60c6b10b649571d..a375da0646f78fd544d5e3c921a87c194745c572 100644 (file)
@@ -176,7 +176,7 @@ test_generic_array_owned (GPtrArray* array)
                for (item_index = 0; item_index < item_collection->len; item_index = item_index + 1) {
                        GValue* _tmp0_;
                        GValue* item = NULL;
-                       _tmp0_ = __g_value_dup0 (g_ptr_array_index (item_collection, item_index));
+                       _tmp0_ = __g_value_dup0 ((GValue*) g_ptr_array_index (item_collection, item_index));
                        item = _tmp0_;
                        {
                                guint _tmp1_;
@@ -201,7 +201,7 @@ test_generic_array_unowned (GPtrArray* array)
                item_collection = array;
                for (item_index = 0; item_index < item_collection->len; item_index = item_index + 1) {
                        GValue* item = NULL;
-                       item = g_ptr_array_index (item_collection, item_index);
+                       item = (GValue*) g_ptr_array_index (item_collection, item_index);
                        {
                                guint _tmp0_;
                                _tmp0_ = i;