about summary refs log tree commit diff
path: root/libnm-glib/nm-secret-agent.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-glib/nm-secret-agent.c')
-rw-r--r--libnm-glib/nm-secret-agent.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/libnm-glib/nm-secret-agent.c b/libnm-glib/nm-secret-agent.c
index 19f55c0e..ae048d80 100644
--- a/libnm-glib/nm-secret-agent.c
+++ b/libnm-glib/nm-secret-agent.c
@@ -21,9 +21,12 @@
 #include <config.h>
 #include <ctype.h>
 #include <string.h>
-#include <NetworkManager.h>
 #include <dbus/dbus-glib-lowlevel.h>
 
+#include "nm-glib-compat.h"
+
+#include <NetworkManager.h>
+
 #include "nm-secret-agent.h"
 #include "nm-glib-enum-types.h"
 #include "nm-glib-marshal.h"
@@ -79,8 +82,6 @@ typedef struct {
 	gboolean auto_register;
 	gboolean suppress_auto;
 	gboolean auto_register_id;
-
-	gboolean disposed;
 } NMSecretAgentPrivate;
 
 enum {
@@ -878,29 +879,28 @@ dispose (GObject *object)
 	NMSecretAgent *self = NM_SECRET_AGENT (object);
 	NMSecretAgentPrivate *priv = NM_SECRET_AGENT_GET_PRIVATE (self);
 
-	if (!priv->disposed) {
-		priv->disposed = TRUE;
+	if (priv->registered)
+		nm_secret_agent_unregister (self);
 
-		if (priv->registered)
-			nm_secret_agent_unregister (self);
-
-		if (priv->auto_register_id)
-			g_source_remove (priv->auto_register_id);
-
-		g_free (priv->identifier);
-		g_free (priv->nm_owner);
+	if (priv->auto_register_id) {
+		g_source_remove (priv->auto_register_id);
+		priv->auto_register_id = 0;
+	}
 
-		while (priv->pending_gets)
-			get_secrets_info_finalize (self, priv->pending_gets->data);
+	g_free (priv->identifier);
+	priv->identifier = NULL;
+	g_free (priv->nm_owner);
+	priv->nm_owner = NULL;
 
-		if (priv->dbus_proxy)
-			g_object_unref (priv->dbus_proxy);
+	while (priv->pending_gets)
+		get_secrets_info_finalize (self, priv->pending_gets->data);
 
-		if (priv->manager_proxy)
-			g_object_unref (priv->manager_proxy);
+	g_clear_object (&priv->dbus_proxy);
+	g_clear_object (&priv->manager_proxy);
 
-		if (priv->bus)
-			dbus_g_connection_unref (priv->bus);
+	if (priv->bus) {
+		dbus_g_connection_unref (priv->bus);
+		priv->bus = NULL;
 	}
 
 	G_OBJECT_CLASS (nm_secret_agent_parent_class)->dispose (object);