]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Visit all nodes for transformation, not only the source ones
authorLuca Bruno <lucabru@src.gnome.org>
Sat, 1 Feb 2014 09:22:41 +0000 (10:22 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 11 Mar 2019 12:52:38 +0000 (13:52 +0100)
codegen/valaccodetransformer.vala
vala/valacodetransformer.vala

index 8e28b1f978317c9982c0565d482c5ad3aff0d4a0..b63c2021196df9adc3d3465629acab27a7f715ed 100644 (file)
@@ -70,6 +70,10 @@ public class Vala.CCodeTransformer : CodeTransformer {
        }
 
        public override void visit_method (Method m) {
+               if (m.body == null) {
+                       return;
+               }
+
                m.accept_children (this);
        }
 
@@ -421,7 +425,7 @@ public class Vala.CCodeTransformer : CodeTransformer {
 
                Expression replacement = null;
                var old_parent_node = expr.parent_node;
-               var target_type = expr.target_type != null ? expr.target_type.copy () : null;
+               var target_type = copy_type (expr.target_type);
                push_builder (new CodeBuilder (context, parent_statement, expr.source_reference));
 
                if (context.analyzer.get_current_non_local_symbol (expr) is Block
index 86e3a2d013df6830dd04d602b1865a8715230252..3e9f6ffae56046148a6094b7a7ddff5f2f230f2b 100644 (file)
@@ -54,12 +54,9 @@ public class Vala.CodeTransformer : CodeVisitor {
                /* we're only interested in non-pkg source files */
                var source_files = context.get_source_files ();
                foreach (SourceFile file in source_files) {
-                       if (file.file_type == SourceFileType.SOURCE ||
-                           (context.header_filename != null && file.file_type == SourceFileType.FAST)) {
-                               /* clear wrapper cache for every file */
-                               wrapper_cache = new HashMap<string, CodeNode> (str_hash, str_equal);
-                               file.accept (this);
-                       }
+                       /* clear wrapper cache for every file */
+                       wrapper_cache = new HashMap<string, CodeNode> (str_hash, str_equal);
+                       file.accept (this);
                }
        }