aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-09-18 06:02:40 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-09-18 06:02:40 +0800
commitc8c0ecf1a7c718b8033f35c6cc41cab53e23c1e5 (patch)
tree2fde1f50cb2f6ce0f15bbd14efe868622c37ceb7
parent1e050bd5f7793b68b997095aab38359e45216c1a (diff)
downloadgsoc2013-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/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);