diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2003-05-20 23:22:41 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2003-05-20 23:22:41 +0800 |
commit | 6f02daa3841d22c6802d2668015177e42973936d (patch) | |
tree | 260138d11ba6fcc5b614b02b9dac60f48517e492 /shell/e-shell-shared-folder-picker-dialog.c | |
parent | 42333eed038c2a464c243c0852501b4529f74ec4 (diff) | |
download | gsoc2013-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/e-shell-shared-folder-picker-dialog.c')
-rw-r--r-- | shell/e-shell-shared-folder-picker-dialog.c | 17 |
1 files changed, 17 insertions, 0 deletions
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 |