[vala] Call g_signal_handlers_destroy on gtypeinstance finalizer



commit b93f6e6d7ff3b79a6b97c92aea857fcb366fa7ba
Author: Luca Bruno <lucabru src gnome org>
Date:   Fri Jun 27 17:14:39 2014 +0200

    Call g_signal_handlers_destroy on gtypeinstance finalizer
    
    Fixes bug 708130

 codegen/valagtypemodule.vala |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index 3dc3729..02c5b6e 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 ()) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]