Index: vala/valamethod.vala =================================================================== --- vala/valamethod.vala (revision 228) +++ vala/valamethod.vala (working copy) @@ -203,21 +203,31 @@ * * @return the name to be used in C code */ - public virtual string! get_cname () { + public string! get_cname () { if (cname == null) { - var parent = symbol.parent_symbol.node; - if (parent is DataType) { - cname = "%s%s".printf (((DataType) parent).get_lower_case_cprefix (), name); - } else if (parent is Namespace) { - cname = "%s%s".printf (((Namespace) parent).get_lower_case_cprefix (), name); - } else { - cname = name; - } + cname = get_default_cname (); } return cname; } /** + * Returns the default interface name of this method as it is used in C + * code. + * + * @return the name to be used in C code by default + */ + public virtual ref string! get_default_cname () { + var parent = symbol.parent_symbol.node; + if (parent is DataType) { + return "%s%s".printf (((DataType) parent).get_lower_case_cprefix (), name); + } else if (parent is Namespace) { + return "%s%s".printf (((Namespace) parent).get_lower_case_cprefix (), name); + } else { + return name; + } + } + + /** * Returns the implementation name of this data type as it is used in C * code. * Index: vala/valacreationmethod.vala =================================================================== --- vala/valacreationmethod.vala (revision 228) +++ vala/valacreationmethod.vala (working copy) @@ -31,8 +31,6 @@ */ public int n_construction_params { get; set; } - private string cname; - /** * Creates a new method. * @@ -64,17 +62,13 @@ * * @return the name to be used in C code */ - public override string! get_cname () { - if (cname == null) { - var parent = symbol.parent_symbol.node; - if (parent is DataType) { - if (name == null) { - cname = "%snew".printf (((DataType) parent).get_lower_case_cprefix ()); - } else { - cname = "%snew_%s".printf (((DataType) parent).get_lower_case_cprefix (), name); - } - } + public override ref string! get_default_cname () { + var parent = symbol.parent_symbol.node; + assert (parent is DataType); + if (name == null) { + return "%snew".printf (((DataType) parent).get_lower_case_cprefix ()); + } else { + return "%snew_%s".printf (((DataType) parent).get_lower_case_cprefix (), name); } - return cname; } }