decl_space.add_type_definition (new CCodeComment (st.source_reference.comment));
}
decl_space.add_type_definition (instance_struct);
+
+ var function = new CCodeFunction (st.get_dup_function (), st.get_cname () + "*");
+ if (st.is_private_symbol ()) {
+ function.modifiers = CCodeModifiers.STATIC;
+ }
+ function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
+ decl_space.add_type_member_declaration (function);
+
+ function = new CCodeFunction (st.get_free_function (), "void");
+ if (st.is_private_symbol ()) {
+ function.modifiers = CCodeModifiers.STATIC;
+ }
+ function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
+ decl_space.add_type_member_declaration (function);
+
+ if (st.is_disposable ()) {
+ function = new CCodeFunction (st.get_copy_function (), "void");
+ if (st.is_private_symbol ()) {
+ function.modifiers = CCodeModifiers.STATIC;
+ }
+ function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
+ function.add_parameter (new CCodeFormalParameter ("dest", st.get_cname () + "*"));
+ decl_space.add_type_member_declaration (function);
+
+ function = new CCodeFunction (st.get_destroy_function (), "void");
+ if (st.is_private_symbol ()) {
+ function.modifiers = CCodeModifiers.STATIC;
+ }
+ function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
+ decl_space.add_type_member_declaration (function);
+ }
}
public override void visit_struct (Struct st) {
function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
- source_declarations.add_type_member_declaration (function.copy ());
-
var cblock = new CCodeBlock ();
var cdecl = new CCodeDeclaration (st.get_cname () + "*");
function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
- source_declarations.add_type_member_declaration (function.copy ());
-
var cblock = new CCodeBlock ();
if (st.is_disposable ()) {
function.add_parameter (new CCodeFormalParameter ("self", "const " + st.get_cname () + "*"));
function.add_parameter (new CCodeFormalParameter ("dest", st.get_cname () + "*"));
- source_declarations.add_type_member_declaration (function.copy ());
-
var cblock = new CCodeBlock ();
var cfrag = new CCodeFragment ();
cblock.add_statement (cfrag);
function.add_parameter (new CCodeFormalParameter ("self", st.get_cname () + "*"));
- source_declarations.add_type_member_declaration (function.copy ());
-
var cblock = new CCodeBlock ();
cblock.add_statement (instance_finalize_fragment);