From: Luca Bruno Date: Fri, 27 Jun 2014 15:14:39 +0000 (+0200) Subject: Call g_signal_handlers_destroy on gtypeinstance finalizer X-Git-Tag: 0.25.1~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b93f6e6d7ff3b79a6b97c92aea857fcb366fa7ba;p=thirdparty%2Fvala.git Call g_signal_handlers_destroy on gtypeinstance finalizer Fixes bug 708130 --- diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 3dc3729f7..02c5b6e5c 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -1710,6 +1710,13 @@ public class Vala.GTypeModule : GErrorModule { ccode.add_declaration ("%s *".printf (get_ccode_name (cl)), new CCodeVariableDeclarator ("self")); ccode.add_assignment (new CCodeIdentifier ("self"), ccast); + + if (!cl.is_compact && cl.base_class == null) { + // non-gobject class + var call = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_handlers_destroy")); + call.add_argument (new CCodeIdentifier ("self")); + ccode.add_expression (call); + } } else { var function = new CCodeFunction (get_ccode_lower_case_prefix (cl) + "free", "void"); if (cl.is_private_symbol ()) {