[gnome-builder] config-manager: cleanup disposal/finalize



commit 27a1069b67707d23320a5875282a52853bae4952
Author: Christian Hergert <chergert redhat com>
Date:   Wed Jan 31 02:59:21 2018 -0800

    config-manager: cleanup disposal/finalize
    
    Disconnect early, to avoid re-entrancy, and only do minimal
    cleanup in the finalize.

 src/libide/config/ide-configuration-manager.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/src/libide/config/ide-configuration-manager.c b/src/libide/config/ide-configuration-manager.c
index cba381eec..a1e51f509 100644
--- a/src/libide/config/ide-configuration-manager.c
+++ b/src/libide/config/ide-configuration-manager.c
@@ -256,6 +256,11 @@ ide_configuration_manager_dispose (GObject *object)
 {
   IdeConfigurationManager *self = (IdeConfigurationManager *)object;
 
+  if (self->current != NULL)
+    g_signal_handlers_disconnect_by_func (self->current,
+                                          G_CALLBACK (ide_configuration_manager_notify_display_name),
+                                          self);
+
   g_cancellable_cancel (self->cancellable);
 
   G_OBJECT_CLASS (ide_configuration_manager_parent_class)->dispose (object);
@@ -266,17 +271,10 @@ ide_configuration_manager_finalize (GObject *object)
 {
   IdeConfigurationManager *self = (IdeConfigurationManager *)object;
 
+  g_clear_object (&self->current);
   g_clear_object (&self->cancellable);
   g_clear_pointer (&self->configs, g_array_unref);
 
-  if (self->current != NULL)
-    {
-      g_signal_handlers_disconnect_by_func (self->current,
-                                            G_CALLBACK (ide_configuration_manager_notify_display_name),
-                                            self);
-      g_clear_object (&self->current);
-    }
-
   G_OBJECT_CLASS (ide_configuration_manager_parent_class)->finalize (object);
 }
 


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