diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-06-20 06:43:29 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-06-20 06:43:29 +0800 |
commit | f4d748a85c534cb8a693b6a1f1b3353adfd73b5b (patch) | |
tree | 2a793f70989026a6b8706215e0ddefb413022d7c /shell | |
parent | 94ec01deda562c323ead315c4ea48043db68b8d0 (diff) | |
download | gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar.gz gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar.bz2 gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar.lz gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar.xz gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.tar.zst gsoc2013-evolution-f4d748a85c534cb8a693b6a1f1b3353adfd73b5b.zip |
Fix similar weak pointer issues throughout.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-backend.c | 6 | ||||
-rw-r--r-- | shell/e-shell-window-private.c | 6 | ||||
-rw-r--r-- | shell/e-shell.c | 6 |
3 files changed, 18 insertions, 0 deletions
diff --git a/shell/e-shell-backend.c b/shell/e-shell-backend.c index 06e1469f58..9ee2edb4dc 100644 --- a/shell/e-shell-backend.c +++ b/shell/e-shell-backend.c @@ -116,6 +116,12 @@ shell_backend_dispose (GObject *object) priv = E_SHELL_BACKEND_GET_PRIVATE (object); + if (priv->shell != NULL) { + g_object_remove_weak_pointer ( + G_OBJECT (priv->shell), &priv->shell); + priv->shell = NULL; + } + if (priv->shell_view_class != NULL) { g_type_class_unref (priv->shell_view_class); priv->shell_view_class = NULL; diff --git a/shell/e-shell-window-private.c b/shell/e-shell-window-private.c index bb74e35ced..71617433d1 100644 --- a/shell/e-shell-window-private.c +++ b/shell/e-shell-window-private.c @@ -449,6 +449,12 @@ e_shell_window_private_dispose (EShellWindow *shell_window) priv->signal_handler_ids = NULL; } + if (priv->shell != NULL) { + g_object_remove_weak_pointer ( + G_OBJECT (priv->shell), &priv->shell); + priv->shell = NULL; + } + DISPOSE (priv->ui_manager); g_hash_table_remove_all (priv->loaded_views); diff --git a/shell/e-shell.c b/shell/e-shell.c index 785485320f..547432bc2d 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -484,6 +484,12 @@ shell_dispose (GObject *object) g_list_free (priv->loaded_backends); priv->loaded_backends = NULL; + if (priv->preparing_for_line_change != NULL) { + g_object_remove_weak_pointer ( + G_OBJECT (priv->preparing_for_line_change), + &priv->preparing_for_line_change); + } + /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (parent_class)->dispose (object); } |