summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-06-03 12:25:20 +0200
committerThomas Haller <thaller@redhat.com>2015-06-03 14:36:04 +0200
commit242d22539ae9b93c3c265a9bb43e6a5749b71ad4 (patch)
tree790a34d707c53161a0c52e420e78229a1e184819
parentb1c3feb227aa5f97688dcb932375761e7ec31c8e (diff)
downloadnetwork-manager-applet-242d22539ae9b93c3c265a9bb43e6a5749b71ad4.tar.gz
applet-device-wifi: refactor NMAWifiDialog:dispose()
-rw-r--r--src/applet-device-wifi.c4
-rw-r--r--src/libnma/nma-wifi-dialog.c36
2 files changed, 17 insertions, 23 deletions
diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c
index 9b318729..0a4e62ec 100644
--- a/src/applet-device-wifi.c
+++ b/src/applet-device-wifi.c
@@ -1462,6 +1462,7 @@ free_wifi_info (SecretsRequest *req)
if (info->dialog) {
gtk_widget_hide (info->dialog);
gtk_widget_destroy (info->dialog);
+ info->dialog = NULL;
}
}
@@ -1564,10 +1565,11 @@ wifi_get_secrets (SecretsRequest *req, GError **error)
{
NMWifiInfo *info = (NMWifiInfo *) req;
- applet_secrets_request_set_free_func (req, free_wifi_info);
+ g_return_val_if_fail (!info->dialog, FALSE);
info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->connection, NULL, NULL, TRUE);
if (info->dialog) {
+ applet_secrets_request_set_free_func (req, free_wifi_info);
g_signal_connect (info->dialog, "response",
G_CALLBACK (get_secrets_dialog_response_cb),
info);
diff --git a/src/libnma/nma-wifi-dialog.c b/src/libnma/nma-wifi-dialog.c
index 4f86a398..5c2ba7f7 100644
--- a/src/libnma/nma-wifi-dialog.c
+++ b/src/libnma/nma-wifi-dialog.c
@@ -68,8 +68,6 @@ typedef struct {
guint revalidate_id;
GetSecretsInfo *secrets_info;
-
- gboolean disposed;
} NMAWifiDialogPrivate;
enum {
@@ -1361,36 +1359,30 @@ dispose (GObject *object)
{
NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (object);
- if (priv->disposed) {
- G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object);
- return;
- }
- priv->disposed = TRUE;
-
- if (priv->secrets_info)
+ if (priv->secrets_info) {
priv->secrets_info->canceled = TRUE;
+ priv->secrets_info = NULL;
+ }
- g_object_unref (priv->client);
- g_object_unref (priv->builder);
+ g_clear_object (&priv->client);
+ g_clear_object (&priv->builder);
- g_object_unref (priv->device_model);
- g_object_unref (priv->connection_model);
+ g_clear_object (&priv->device_model);
+ g_clear_object (&priv->connection_model);
- if (priv->group)
- g_object_unref (priv->group);
+ g_clear_object (&priv->group);
- if (priv->connection)
- g_object_unref (priv->connection);
+ g_clear_object (&priv->connection);
- if (priv->device)
- g_object_unref (priv->device);
+ g_clear_object (&priv->device);
- if (priv->ap)
- g_object_unref (priv->ap);
+ g_clear_object (&priv->ap);
- if (priv->revalidate_id)
+ if (priv->revalidate_id) {
g_source_remove (priv->revalidate_id);
+ priv->revalidate_id = 0;
+ }
G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object);
}