aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ChangeLog8
-rw-r--r--shell/e-shell.c9
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);