From: Luca Bruno Date: Sat, 25 Dec 2010 12:05:30 +0000 (+0100) Subject: girparser: Fix assuming parameter names of signal from virtual method. X-Git-Tag: 0.13.0~284 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff011c01e193480fe753307bf82a375f62255a9d;p=thirdparty%2Fvala.git girparser: Fix assuming parameter names of signal from virtual method. --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 0b7f1527d..06731bff5 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -791,18 +791,26 @@ public class Vala.GirParser : CodeVisitor { } } - void assume_parameter_names (Signal sig, Symbol sym) { + void assume_parameter_names (Signal sig, Symbol sym, bool skip_first) { Iterator iter; if (sym is Method) { iter = ((Method) sym).get_parameters ().iterator (); } else { iter = ((Delegate) sym).get_parameters ().iterator (); } + bool first = true; foreach (var param in sig.get_parameters ()) { if (!iter.next ()) { // unreachable for valid GIR break; } + if (skip_first && first) { + if (!iter.next ()) { + // unreachable for valid GIR + break; + } + first = false; + } param.name = iter.get ().name; } } @@ -905,7 +913,7 @@ public class Vala.GirParser : CodeVisitor { } else { sig.has_emitter = true; } - assume_parameter_names (sig, method); + assume_parameter_names (sig, method, false); merged.add (cinfo); } else if (sym is Field) { merged.add (cinfo); @@ -2861,7 +2869,7 @@ public class Vala.GirParser : CodeVisitor { } else if (symbol is Signal) { var sig = (Signal) symbol; sig.is_virtual = true; - assume_parameter_names (sig, d); + assume_parameter_names (sig, d, true); } else if (symbol is Property) { var prop = (Property) symbol; prop.is_virtual = true;