From: Jürg Billeter Date: Sat, 21 Aug 2010 10:11:58 +0000 (+0200) Subject: Do not create empty type parameter lists in parser X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d0261f5ad4527edd78dd9f3ddc7a9bc62215f6b;p=thirdparty%2Fvala.git Do not create empty type parameter lists in parser --- diff --git a/vala/valaparser.vala b/vala/valaparser.vala index f7dc50b35..093cd4e22 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -41,6 +41,8 @@ public class Vala.Parser : CodeVisitor { const int BUFFER_SIZE = 32; + static List _empty_type_parameter_list; + struct TokenInfo { public TokenType type; public SourceLocation begin; @@ -3425,16 +3427,21 @@ public class Vala.Parser : CodeVisitor { } List parse_type_parameter_list () throws ParseError { - var list = new ArrayList (); if (accept (TokenType.OP_LT)) { + var list = new ArrayList (); do { var begin = get_location (); string id = parse_identifier (); list.add (new TypeParameter (id, get_src (begin))); } while (accept (TokenType.COMMA)); expect (TokenType.OP_GT); + return list; + } else { + if (_empty_type_parameter_list == null) { + _empty_type_parameter_list = new ArrayList (); + } + return _empty_type_parameter_list; } - return list; } void skip_type_argument_list () throws ParseError {