]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Fix conditional expression with only one void side
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 19 May 2024 17:06:12 +0000 (19:06 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 29 May 2024 08:35:35 +0000 (10:35 +0200)
Found by -pedantic-errors

codegen/valaccodebasemodule.vala
tests/basic-types/glists.c-expected
tests/generics/bug694765-2.c-expected

index 54be320a441b3adbcb1bd1906a1c685524c4e55d..f3eb3fa7d24adf067ba389e5862b2b1b7e503052 100644 (file)
@@ -3686,9 +3686,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        free_call.add_argument (new CCodeMemberAccess.pointer (new CCodeIdentifier("node"), "data"));
 
                        var data_isnull = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeMemberAccess.pointer (new CCodeIdentifier("node"), "data"), new CCodeConstant ("NULL"));
-                       var ccomma_data = new CCodeCommaExpression ();
-                       ccomma_data.append_expression (new CCodeConditionalExpression (data_isnull, new CCodeConstant ("NULL"), free_call));
-                       ccode.add_expression (ccomma_data);
+                       var ccomma_free = new CCodeCommaExpression ();
+                       ccomma_free.append_expression (free_call);
+                       ccomma_free.append_expression (new CCodeConstant ("NULL"));
+                       ccode.add_expression (new CCodeConditionalExpression (data_isnull, new CCodeConstant ("NULL"), ccomma_free));
 
                        ccode.add_return (new CCodeConstant ("FALSE"));
 
@@ -3706,10 +3707,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        element_free_call.add_argument (new CCodeIdentifier ("free_func"));
 
                        var free_func_isnull = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeIdentifier ("free_func"), new CCodeConstant ("NULL"));
-                       var ccomma = new CCodeCommaExpression ();
-                       ccomma.append_expression (new CCodeConditionalExpression (free_func_isnull, new CCodeConstant ("NULL"), element_free_call));
-
-                       ccode.add_expression (ccomma);
+                       var ccomma_element_free = new CCodeCommaExpression ();
+                       ccomma_element_free.append_expression (element_free_call);
+                       ccomma_element_free.append_expression (new CCodeConstant ("NULL"));
+                       ccode.add_expression (new CCodeConditionalExpression (free_func_isnull, new CCodeConstant ("NULL"), ccomma_element_free));
 
                        var cfreecall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_free_function (gnode_type)));
                        cfreecall.add_argument (new CCodeIdentifier ("self"));
index 7f272b96967448d0120efb81f1d32e028632e54b..3aa60471a955881b84397057caa2f8cc86293fdd 100644 (file)
@@ -216,7 +216,7 @@ static gboolean
 _g_node_free_all_node (GNode* node,
                        GDestroyNotify free_func)
 {
-       (node->data == NULL) ? NULL : free_func (node->data);
+       (node->data == NULL) ? NULL : (free_func (node->data), NULL);
        return FALSE;
 }
 
@@ -224,7 +224,7 @@ static void
 _g_node_free_all (GNode* self,
                   GDestroyNotify free_func)
 {
-       (free_func == NULL) ? NULL : g_node_traverse (self, G_POST_ORDER, G_TRAVERSE_ALL, -1, (GNodeTraverseFunc) _g_node_free_all_node, free_func);
+       (free_func == NULL) ? NULL : (g_node_traverse (self, G_POST_ORDER, G_TRAVERSE_ALL, -1, (GNodeTraverseFunc) _g_node_free_all_node, free_func), NULL);
        g_node_destroy (self);
 }
 
index 4444fdc498e68529633d9a5c0b556451fe3ec7ec..0bc7ed592b96d6f73826e580954c95da8dffad66 100644 (file)
@@ -400,7 +400,7 @@ static gboolean
 _g_node_free_all_node (GNode* node,
                        GDestroyNotify free_func)
 {
-       (node->data == NULL) ? NULL : free_func (node->data);
+       (node->data == NULL) ? NULL : (free_func (node->data), NULL);
        return FALSE;
 }
 
@@ -408,7 +408,7 @@ static void
 _g_node_free_all (GNode* self,
                   GDestroyNotify free_func)
 {
-       (free_func == NULL) ? NULL : g_node_traverse (self, G_POST_ORDER, G_TRAVERSE_ALL, -1, (GNodeTraverseFunc) _g_node_free_all_node, free_func);
+       (free_func == NULL) ? NULL : (g_node_traverse (self, G_POST_ORDER, G_TRAVERSE_ALL, -1, (GNodeTraverseFunc) _g_node_free_all_node, free_func), NULL);
        g_node_destroy (self);
 }