]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Do not handle binary expressions without parent statement
authorLuca Bruno <lucabru@src.gnome.org>
Thu, 9 Feb 2012 12:45:57 +0000 (13:45 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 11 Mar 2019 12:52:38 +0000 (13:52 +0100)
codegen/valaccodetransformer.vala

index cdbe3a27990b7005e85b9c39bfbe98a80d7569b3..92df673ec160db1cc64f0c9341921548ca524bb3 100644 (file)
@@ -210,8 +210,6 @@ public class Vala.CCodeTransformer : CodeTransformer {
                // convert to simple loop
                push_builder (new CodeBuilder (context, stmt, stmt.source_reference));
 
-               var block = new Block (stmt.source_reference);
-
                // initializer
                foreach (var init_expr in stmt.get_initializer ()) {
                        b.add_expression (init_expr);
@@ -401,10 +399,16 @@ public class Vala.CCodeTransformer : CodeTransformer {
        }
 
        public override void visit_binary_expression (BinaryExpression expr) {
+               var parent_statement = expr.parent_statement;
+               if (parent_statement == null) {
+                       base.visit_binary_expression (expr);
+                       return;
+               }
+
                Expression replacement = null;
                var old_parent_node = expr.parent_node;
                var target_type = expr.target_type != null ? expr.target_type.copy () : null;
-               push_builder (new CodeBuilder (context, expr.parent_statement, expr.source_reference));
+               push_builder (new CodeBuilder (context, parent_statement, expr.source_reference));
 
                if (context.analyzer.get_current_non_local_symbol (expr) is Block
                    && (expr.operator == BinaryOperator.AND || expr.operator == BinaryOperator.OR)) {