]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add factory method for creating instance register functions
authorDidier 'Ptitjes <ptitjes@free.fr>
Thu, 30 Apr 2009 13:32:49 +0000 (15:32 +0200)
committerJürg Billeter <j@bitron.ch>
Tue, 28 Jul 2009 18:29:02 +0000 (20:29 +0200)
Signed-off-by: Didier 'Ptitjes <ptitjes@free.fr>
codegen/valagtypemodule.vala

index 18c44fd77c6a9ddc2cbb963c7ca4b327008cd73a..e534cfe8a0f62fbe49210e96436a3612be05831c 100644 (file)
@@ -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 ())));