[gnome-builder] config-manager: cleanup disposal/finalize
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] config-manager: cleanup disposal/finalize
- Date: Wed, 31 Jan 2018 11:37:37 +0000 (UTC)
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]