diff options
Diffstat (limited to 'codegen/valagtypemodule.vala')
-rw-r--r-- | codegen/valagtypemodule.vala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 5632b82a4..f7433f205 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -198,7 +198,8 @@ public class Vala.GTypeModule : GErrorModule { // Custom unref-methods need to be emitted before G_DEFINE_AUTOPTR_CLEANUP_FUNC, // so we guard against that special case and handle it in generate_method_declaration. if (!(base_class.is_compact && is_reference_counting (base_class)) - && (!context.use_header || decl_space.is_header)) { + && (!context.use_header || decl_space.cfile_type == CCodeFileType.PUBLIC_HEADER + || (decl_space.cfile_type == CCodeFileType.INTERNAL_HEADER && base_class.is_internal_symbol()))) { string autoptr_cleanup_func; if (is_reference_counting (base_class)) { autoptr_cleanup_func = get_ccode_unref_function (base_class); @@ -425,7 +426,8 @@ public class Vala.GTypeModule : GErrorModule { // in addition to the non-ref-countable case in generate_class_declaration. unowned Class? cl = m.parent_symbol as Class; if (cl != null && cl.is_compact && get_ccode_unref_function (cl) == get_ccode_name (m) - && (!context.use_header || decl_space.is_header)) { + && (!context.use_header || decl_space.cfile_type == CCodeFileType.PUBLIC_HEADER + || (decl_space.cfile_type == CCodeFileType.INTERNAL_HEADER && cl.is_internal_symbol()))) { decl_space.add_type_member_declaration (new CCodeIdentifier ("G_DEFINE_AUTOPTR_CLEANUP_FUNC (%s, %s)".printf (get_ccode_name (cl), get_ccode_name (m)))); decl_space.add_type_member_declaration (new CCodeNewline ()); } |