diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2001-09-18 06:02:40 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2001-09-18 06:02:40 +0800 |
commit | c8c0ecf1a7c718b8033f35c6cc41cab53e23c1e5 (patch) | |
tree | 2fde1f50cb2f6ce0f15bbd14efe868622c37ceb7 | |
parent | 1e050bd5f7793b68b997095aab38359e45216c1a (diff) | |
download | gsoc2013-evolution-c8c0ecf1a7c718b8033f35c6cc41cab53e23c1e5.tar.gz gsoc2013-evolution-c8c0ecf1a7c718b8033f35c6cc41cab53e23c1e5.tar.zst gsoc2013-evolution-c8c0ecf1a7c718b8033f35c6cc41cab53e23c1e5.zip |
Only raise NotReady if the local storage pointer is actually NULL. This
* e-shell.c (impl_Shell_getLocalStorage): Only raise NotReady if
the local storage pointer is actually NULL. This way it is
possible for the components to access the local storage during
initialization even if the shell is not quite finished
initializing yet.
svn path=/trunk/; revision=12914
-rw-r--r-- | shell/ChangeLog | 8 | ||||
-rw-r--r-- | shell/e-shell.c | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index 59e5929c19..97d964b872 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,13 @@ 2001-09-17 Ettore Perazzoli <ettore@ximian.com> + * e-shell.c (impl_Shell_getLocalStorage): Only raise NotReady if + the local storage pointer is actually NULL. This way it is + possible for the components to access the local storage during + initialization even if the shell is not quite finished + initializing yet. + +2001-09-17 Ettore Perazzoli <ettore@ximian.com> + [Fix #9060, Shell crash after mailer crash.] * e-shell-view.c (hash_foreach_destroy_view): Renamed from diff --git a/shell/e-shell.c b/shell/e-shell.c index 461807a3d9..17f5bc2c72 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -425,13 +425,16 @@ impl_Shell_getLocalStorage (PortableServer_Servant servant, EShell *shell; EShellPrivate *priv; - if (raise_exception_if_not_ready (servant, ev)) - return CORBA_OBJECT_NIL; - bonobo_object = bonobo_object_from_servant (servant); shell = E_SHELL (bonobo_object); priv = shell->priv; + if (priv->local_storage == NULL) { + CORBA_exception_set (ev, CORBA_USER_EXCEPTION, + ex_GNOME_Evolution_Shell_NotReady, NULL); + return CORBA_OBJECT_NIL; + } + local_storage_interface = e_local_storage_get_corba_interface (priv->local_storage); bonobo_object_dup_ref (local_storage_interface, ev); |