From: Didier 'Ptitjes Date: Thu, 30 Apr 2009 13:32:49 +0000 (+0200) Subject: Add factory method for creating instance register functions X-Git-Tag: 0.7.5~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7171477e01f0a88866e501bf65c0e4ea8574e95e;p=thirdparty%2Fvala.git Add factory method for creating instance register functions Signed-off-by: Didier 'Ptitjes --- diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 18c44fd77..e534cfe8a 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -1791,7 +1791,7 @@ internal class Vala.GTypeModule : GErrorModule { } decl_space.add_type_definition (type_struct); - var type_fun = new InterfaceRegisterFunction (iface, context); + var type_fun = create_interface_register_function (iface); type_fun.init_from_type (); decl_space.add_type_member_declaration (type_fun.get_declaration ()); } @@ -1812,13 +1812,17 @@ internal class Vala.GTypeModule : GErrorModule { add_interface_base_init_function (iface); - var type_fun = new InterfaceRegisterFunction (iface, context); + var type_fun = create_interface_register_function (iface); type_fun.init_from_type (); source_type_member_definition.append (type_fun.get_definition ()); current_type_symbol = null; } + public virtual TypeRegisterFunction create_interface_register_function (Interface iface) { + return new InterfaceRegisterFunction (iface, context); + } + private void add_interface_base_init_function (Interface iface) { var base_init = new CCodeFunction ("%s_base_init".printf (iface.get_lower_case_cname (null)), "void"); base_init.add_parameter (new CCodeFormalParameter ("iface", "%sIface *".printf (iface.get_cname ())));