]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix nested context information
authorJürg Billeter <j@bitron.ch>
Mon, 6 Apr 2009 16:02:39 +0000 (18:02 +0200)
committerJürg Billeter <j@bitron.ch>
Mon, 6 Apr 2009 16:02:39 +0000 (18:02 +0200)
gobject/valaccodebasemodule.vala
gobject/valagobjectmodule.vala

index 9354205f8b80e3d1e6d2c9532ad4d81848ab3e0e..20a8f02a49584ee898353f0ea06d85c50a2c6a66 100644 (file)
@@ -1140,6 +1140,8 @@ internal class Vala.CCodeBaseModule : CCodeModule {
        }
 
        public override void visit_property_accessor (PropertyAccessor acc) {
+               var old_property_accessor = current_property_accessor;
+               bool old_method_inner_error = current_method_inner_error;
                current_property_accessor = acc;
                current_method_inner_error = false;
 
@@ -1325,11 +1327,13 @@ internal class Vala.CCodeBaseModule : CCodeModule {
                        source_type_member_definition.append (function);
                }
 
-               current_property_accessor = null;
+               current_property_accessor = old_property_accessor;
                current_return_type = old_return_type;
+               current_method_inner_error = old_method_inner_error;
        }
 
        public override void visit_destructor (Destructor d) {
+               bool old_method_inner_error = current_method_inner_error;
                current_method_inner_error = false;
 
                d.accept_children (codegen);
@@ -1351,6 +1355,8 @@ internal class Vala.CCodeBaseModule : CCodeModule {
                cfrag.append (d.body.ccodenode);
 
                d.ccodenode = cfrag;
+
+               current_method_inner_error = old_method_inner_error;
        }
 
        public override void visit_block (Block b) {
index 3a1cf4a76643fa60a57cfe5f6c174327a79571af..38511ca9f870a939916a441481207f42b4b8a17a 100644 (file)
@@ -1942,6 +1942,7 @@ internal class Vala.GObjectModule : GTypeModule {
        }
 
        public override void visit_constructor (Constructor c) {
+               bool old_method_inner_error = current_method_inner_error;
                current_method_inner_error = false;
                in_constructor = true;
 
@@ -2074,6 +2075,8 @@ internal class Vala.GObjectModule : GTypeModule {
                } else {
                        Report.error (c.source_reference, "internal error: constructors must have instance, class, or static binding");
                }
+
+               current_method_inner_error = old_method_inner_error;
        }
 
        public override string get_dynamic_property_getter_cname (DynamicProperty prop) {