diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-12-14 10:23:14 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-12-14 10:26:31 +0100 |
commit | 2dc47785171f8f62f7f017939681e0d5cf3e9847 (patch) | |
tree | 856f77592560ac46fb3d7be29c66353778b90531 | |
parent | 0c05b6e39d2a1f10cdd3f155c85d39f7a563080b (diff) | |
download | vala-2dc47785171f8f62f7f017939681e0d5cf3e9847.tar.gz |
Release taken references to CodeContext after using it
https://bugzilla.gnome.org/show_bug.cgi?id=712694
-rw-r--r-- | codegen/valaccodebasemodule.vala | 3 | ||||
-rw-r--r-- | codegen/valagirwriter.vala | 3 | ||||
-rw-r--r-- | vala/valaflowanalyzer.vala | 2 | ||||
-rw-r--r-- | vala/valagenieparser.vala | 1 | ||||
-rw-r--r-- | vala/valagirparser.vala | 2 | ||||
-rw-r--r-- | vala/valaparser.vala | 1 | ||||
-rw-r--r-- | vala/valasemanticanalyzer.vala | 7 | ||||
-rw-r--r-- | vala/valasymbolresolver.vala | 3 |
8 files changed, 19 insertions, 3 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index f99acce08..56ff94291 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -526,6 +526,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { var stream = FileStream.open (context.symbols_filename, "w"); if (stream == null) { Report.error (null, "unable to open `%s' for writing".printf (context.symbols_filename)); + this.context = null; return; } @@ -552,6 +553,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { Report.error (null, "unable to open `%s' for writing".printf (context.internal_header_filename)); } } + + this.context = null; } public void push_context (EmitContext emit_context) { diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index 47e1d2a9d..bd814f08e 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -165,6 +165,7 @@ public class Vala.GIRWriter : CodeVisitor { stream = FileStream.open (filename, "w"); if (stream == null) { Report.error (null, "unable to open `%s' for writing".printf (filename)); + this.context = null; return; } @@ -196,6 +197,8 @@ public class Vala.GIRWriter : CodeVisitor { if (our_namespaces.size == 0) { Report.error (null, "No suitable namespace found to export for GIR"); } + + this.context = null; } private void write_doc (string? comment) { diff --git a/vala/valaflowanalyzer.vala b/vala/valaflowanalyzer.vala index 3683b817f..122e58d7f 100644 --- a/vala/valaflowanalyzer.vala +++ b/vala/valaflowanalyzer.vala @@ -112,6 +112,8 @@ public class Vala.FlowAnalyzer : CodeVisitor { file.accept (this); } } + + this.context = null; } public override void visit_source_file (SourceFile source_file) { diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index df4f66e9b..f9aba46ff 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -86,6 +86,7 @@ public class Vala.Genie.Parser : CodeVisitor { public void parse (CodeContext context) { this.context = context; context.accept (this); + this.context = null; } public override void visit_source_file (SourceFile source_file) { diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 0754e8d34..edc580c68 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -1327,6 +1327,8 @@ public class Vala.GirParser : CodeVisitor { foreach (var metadata in metadata_roots) { report_unused_metadata (metadata); } + + this.context = null; } void map_vala_to_gir () { diff --git a/vala/valaparser.vala b/vala/valaparser.vala index ec5e34e82..6228ba98e 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -76,6 +76,7 @@ public class Vala.Parser : CodeVisitor { public void parse (CodeContext context) { this.context = context; context.accept (this); + this.context = null; } public override void visit_source_file (SourceFile source_file) { diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index a7bbb18e6..fce226b1f 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -28,9 +28,8 @@ using GLib; * Code visitor analyzing and checking code. */ public class Vala.SemanticAnalyzer : CodeVisitor { - public CodeContext context { get; set; } + CodeContext context; - public Symbol root_symbol; public Symbol current_symbol { get; set; } public SourceFile current_source_file { get; set; } @@ -181,7 +180,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { public void analyze (CodeContext context) { this.context = context; - root_symbol = context.root; + var root_symbol = context.root; bool_type = new BooleanType ((Struct) root_symbol.scope.lookup ("bool")); string_type = new ObjectType ((Class) root_symbol.scope.lookup ("string")); @@ -224,6 +223,8 @@ public class Vala.SemanticAnalyzer : CodeVisitor { current_symbol = root_symbol; context.root.check (context); context.accept (this); + + this.context = null; } public override void visit_source_file (SourceFile file) { diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index 32c84e4c3..53ad72821 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -42,6 +42,9 @@ public class Vala.SymbolResolver : CodeVisitor { root_symbol = context.root; context.root.accept (this); + + root_symbol = null; + this.context = null; } public override void visit_namespace (Namespace ns) { |