[gnome-builder] egg-signal-group: ref before sinking closure



commit ad0419bc44c3bdc70ad7b09e912c4557f49e4e5d
Author: Christian Hergert <christian hergert me>
Date:   Fri May 1 15:43:18 2015 -0700

    egg-signal-group: ref before sinking closure
    
    g_closure_sink() will drop a reference, which is slightly different than
    the semantics of object floating references.
    
    This ensures we keep our reference.

 contrib/egg/egg-signal-group.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/contrib/egg/egg-signal-group.c b/contrib/egg/egg-signal-group.c
index 4ec04f8..1d66c60 100644
--- a/contrib/egg/egg-signal-group.c
+++ b/contrib/egg/egg-signal-group.c
@@ -405,12 +405,12 @@ egg_signal_group_connect_object (EggSignalGroup *self,
   else
     closure = g_cclosure_new_object (callback, data);
 
-  g_closure_sink (closure);
-
   handler = g_slice_new0 (SignalHandler);
   handler->detailed_signal = g_intern_string (detailed_signal);
-  handler->closure = closure;
+  handler->closure = g_closure_ref (closure);
   handler->connect_after = ((flags & G_CONNECT_AFTER) != 0);
 
+  g_closure_sink (closure);
+
   g_ptr_array_add (self->handlers, handler);
 }


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