aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2003-05-20 23:22:41 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2003-05-20 23:22:41 +0800
commit6f02daa3841d22c6802d2668015177e42973936d (patch)
tree260138d11ba6fcc5b614b02b9dac60f48517e492 /shell
parent42333eed038c2a464c243c0852501b4529f74ec4 (diff)
downloadgsoc2013-evolution-6f02daa3841d22c6802d2668015177e42973936d.tar.gz
gsoc2013-evolution-6f02daa3841d22c6802d2668015177e42973936d.tar.zst
gsoc2013-evolution-6f02daa3841d22c6802d2668015177e42973936d.zip
(storage_weak_notify): Set
the storage member to NULL. (shell_weak_notify): Set the shell member to NULL. (cleanup_discovery): g_object_weak_unref() shell, parent and storage. svn path=/trunk/; revision=21280
Diffstat (limited to 'shell')
-rw-r--r--shell/ChangeLog10
-rw-r--r--shell/e-shell-shared-folder-picker-dialog.c17
2 files changed, 27 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index af4b61b4b2..b4543d6d56 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,13 @@
+2003-05-20 Ettore Perazzoli <ettore@ximian.com>
+
+ [#43322]
+
+ * e-shell-shared-folder-picker-dialog.c (storage_weak_notify): Set
+ the storage member to NULL.
+ (shell_weak_notify): Set the shell member to NULL.
+ (cleanup_discovery): g_object_weak_unref() shell, parent and
+ storage.
+
2003-05-19 Ettore Perazzoli <ettore@ximian.com>
* main.c: Removed "forced_upgrade" unused variable.
diff --git a/shell/e-shell-shared-folder-picker-dialog.c b/shell/e-shell-shared-folder-picker-dialog.c
index 191eccbbe3..5cfc9e9393 100644
--- a/shell/e-shell-shared-folder-picker-dialog.c
+++ b/shell/e-shell-shared-folder-picker-dialog.c
@@ -292,6 +292,10 @@ show_dialog (EShell *shell,
/* Discovery process. */
+static void shell_weak_notify (void *data, GObject *where_the_object_was);
+static void shell_view_weak_notify (void *data, GObject *where_the_object_was);
+static void storage_weak_notify (void *data, GObject *where_the_object_was);
+
struct _DiscoveryData {
EShell *shell;
EShellView *parent;
@@ -308,6 +312,15 @@ cleanup_discovery (DiscoveryData *discovery_data)
if (discovery_data->dialog != NULL)
gtk_widget_destroy (discovery_data->dialog);
+ if (discovery_data->shell != NULL)
+ g_object_weak_unref (G_OBJECT (discovery_data->shell), shell_weak_notify, discovery_data);
+
+ if (discovery_data->parent != NULL)
+ g_object_weak_unref (G_OBJECT (discovery_data->parent), shell_view_weak_notify, discovery_data);
+
+ if (discovery_data->storage != NULL)
+ g_object_weak_unref (G_OBJECT (discovery_data->storage), storage_weak_notify, discovery_data);
+
g_free (discovery_data->user_email_address);
g_free (discovery_data->folder_name);
g_object_unref (discovery_data->storage);
@@ -406,6 +419,8 @@ shell_weak_notify (void *data,
DiscoveryData *discovery_data;
discovery_data = (DiscoveryData *) data;
+ discovery_data->shell = NULL;
+
cleanup_discovery (discovery_data);
}
@@ -426,6 +441,8 @@ storage_weak_notify (void *data,
DiscoveryData *discovery_data;
discovery_data = (DiscoveryData *) data;
+ discovery_data->storage = NULL;
+
cleanup_discovery (discovery_data);
/* FIXME: Should we signal the user when this happens? I.e. when the