var old_prop_enum = codegen.prop_enum;
var old_class_init_fragment = codegen.class_init_fragment;
var old_instance_init_fragment = codegen.instance_init_fragment;
- var old_instance_dispose_fragment = codegen.instance_dispose_fragment;
+ var old_instance_finalize_fragment = codegen.instance_finalize_fragment;
codegen.current_symbol = cl;
codegen.current_type_symbol = cl;
codegen.current_class = cl;
codegen.prop_enum.add_value (new CCodeEnumValue ("%s_DUMMY_PROPERTY".printf (cl.get_upper_case_cname (null))));
codegen.class_init_fragment = new CCodeFragment ();
codegen.instance_init_fragment = new CCodeFragment ();
- codegen.instance_dispose_fragment = new CCodeFragment ();
+ codegen.instance_finalize_fragment = new CCodeFragment ();
}
CCodeFragment decl_frag;
if (is_gobject) {
if (cl.get_fields ().size > 0 || cl.destructor != null) {
- add_dispose_function (cl);
+ add_finalize_function (cl);
}
}
var destroy_block = new CCodeBlock ();
var get_class = new CCodeFunctionCall (new CCodeIdentifier ("%s_GET_CLASS".printf (cl.get_upper_case_cname (null))));
get_class.add_argument (new CCodeIdentifier ("self"));
- var finalize = new CCodeMemberAccess.pointer (get_class, "finalize");
- var finalize_call = new CCodeFunctionCall (finalize);
- finalize_call.add_argument (new CCodeIdentifier ("self"));
- //destroy_block.add_statement (new CCodeExpressionStatement (finalize_call));
var free = new CCodeFunctionCall (new CCodeIdentifier ("g_type_free_instance"));
free.add_argument (new CCodeCastExpression (new CCodeIdentifier ("self"), "GTypeInstance *"));
destroy_block.add_statement (new CCodeExpressionStatement (free));
var cblock = new CCodeBlock ();
- cblock.add_statement (codegen.instance_dispose_fragment);
+ cblock.add_statement (codegen.instance_finalize_fragment);
if (cl.destructor != null) {
cblock.add_statement (cl.destructor.ccodenode);
codegen.prop_enum = old_prop_enum;
codegen.class_init_fragment = old_class_init_fragment;
codegen.instance_init_fragment = old_instance_init_fragment;
- codegen.instance_dispose_fragment = old_instance_dispose_fragment;
+ codegen.instance_finalize_fragment = old_instance_finalize_fragment;
}
private void add_class_init_function (Class cl) {
init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ccast, "constructor"), new CCodeIdentifier ("%s_constructor".printf (cl.get_lower_case_cname (null))))));
}
- /* set dispose function */
+ /* set finalize function */
if (cl.get_fields ().size > 0 || cl.destructor != null) {
var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
ccast.add_argument (new CCodeIdentifier ("klass"));
- init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ccast, "dispose"), new CCodeIdentifier ("%s_dispose".printf (cl.get_lower_case_cname (null))))));
+ init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%s_finalize".printf (cl.get_lower_case_cname (null))))));
}
}
codegen.source_type_member_definition.append (instance_init);
}
- private void add_dispose_function (Class cl) {
- var function = new CCodeFunction ("%s_dispose".printf (cl.get_lower_case_cname (null)), "void");
+ private void add_finalize_function (Class cl) {
+ var function = new CCodeFunction ("%s_finalize".printf (cl.get_lower_case_cname (null)), "void");
function.modifiers = CCodeModifiers.STATIC;
function.add_parameter (new CCodeFormalParameter ("obj", "GObject *"));
cblock.add_statement (cl.destructor.ccodenode);
}
- cblock.add_statement (codegen.instance_dispose_fragment);
+ cblock.add_statement (codegen.instance_finalize_fragment);
- // chain up to dispose function of the base class
+ // chain up to finalize function of the base class
var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
ccast.add_argument (new CCodeIdentifier ("%s_parent_class".printf (cl.get_lower_case_cname (null))));
- ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (ccast, "dispose"));
+ ccall = new CCodeFunctionCall (new CCodeMemberAccess.pointer (ccast, "finalize"));
ccall.add_argument (new CCodeIdentifier ("obj"));
cblock.add_statement (new CCodeExpressionStatement (ccall));
public CCodeFragment source_type_member_definition;
public CCodeFragment class_init_fragment;
public CCodeFragment instance_init_fragment;
- public CCodeFragment instance_dispose_fragment;
+ public CCodeFragment instance_finalize_fragment;
public CCodeFragment source_signal_marshaller_definition;
public CCodeFragment module_init_fragment;
fc.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, l));
- if (instance_dispose_fragment != null) {
- instance_dispose_fragment.append (new CCodeExpressionStatement (fc));
+ if (instance_finalize_fragment != null) {
+ instance_finalize_fragment.append (new CCodeExpressionStatement (fc));
}
}
}
}
}
- if (requires_destroy (f.field_type) && instance_dispose_fragment != null) {
+ if (requires_destroy (f.field_type) && instance_finalize_fragment != null) {
var this_access = new MemberAccess.simple ("this");
this_access.value_type = get_data_type_for_symbol ((TypeSymbol) f.parent_symbol);
this_access.ccodenode = new CCodeIdentifier ("self");
var ma = new MemberAccess (this_access, f.name);
ma.symbol_reference = f;
- instance_dispose_fragment.append (new CCodeExpressionStatement (get_unref_expression (lhs, f.field_type, ma)));
+ instance_finalize_fragment.append (new CCodeExpressionStatement (get_unref_expression (lhs, f.field_type, ma)));
}
} else if (f.binding == MemberBinding.CLASS) {
st.add_field (field_ctype, f.get_cname ());