From: Luca Bruno Date: Mon, 30 Aug 2010 11:47:05 +0000 (+0200) Subject: girparser: Skip class field that refer to the parent instance X-Git-Tag: 0.11.2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=acc1127a8f0749368ade6a041f823d412c5b72fe;p=thirdparty%2Fvala.git girparser: Skip class field that refer to the parent instance --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 3c346ae36..b31b01c6a 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -1869,6 +1869,7 @@ public class Vala.GirParser : CodeVisitor { } next (); + var first_field = true; var old_symbols_info = current_symbols_info; current_symbols_info = new HashMap> (str_hash, str_equal); while (current_token == MarkupTokenType.START_ELEMENT) { @@ -1885,7 +1886,13 @@ public class Vala.GirParser : CodeVisitor { } else if (reader.name == "constant") { add_symbol_info (parse_constant ()); } else if (reader.name == "field") { - add_symbol_info (parse_field ()); + if (first_field && parent != null) { + // first field is guaranteed to be the parent instance + skip_element (); + } else { + add_symbol_info (parse_field ()); + } + first_field = false; } else if (reader.name == "property") { add_symbol_info (parse_property ()); } else if (reader.name == "constructor") {