diff options
Diffstat (limited to 'libnm-glib/nm-secret-agent.c')
| -rw-r--r-- | libnm-glib/nm-secret-agent.c | 42 |
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); |