aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog7
-rw-r--r--shell/e-shell-offline-handler.c21
2 files changed, 20 insertions, 8 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 697bd21fcf..0df1ac280e 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,12 @@
2001-08-03 Ettore Perazzoli <ettore@ximian.com>
+ * e-shell-offline-handler.c (progress_listener_servant_free):
+ Actually __fini the servant and deactivate the object too.
+ (component_info_free): Updated accordingly [i.e. don't do the
+ deactivation stuff here].
+
+2001-08-03 Ettore Perazzoli <ettore@ximian.com>
+
[Fixes #4663, startup crash.]
* e-shell.c (e_shell_construct): Make sure the pointer to the db
diff --git a/shell/e-shell-offline-handler.c b/shell/e-shell-offline-handler.c
index 2495edffac..3369de0075 100644
--- a/shell/e-shell-offline-handler.c
+++ b/shell/e-shell-offline-handler.c
@@ -134,6 +134,19 @@ progress_listener_servant_new (EShellOfflineHandler *offline_handler,
static void
progress_listener_servant_free (OfflineProgressListenerServant *servant)
{
+ CORBA_Environment ev;
+ PortableServer_ObjectId *oid;
+
+ CORBA_exception_init (&ev);
+
+ oid = PortableServer_POA_servant_to_id (bonobo_poa (), servant, &ev);
+ PortableServer_POA_deactivate_object (bonobo_poa (), oid, &ev);
+ CORBA_free (oid);
+
+ POA_GNOME_Evolution_OfflineProgressListener__fini ((POA_GNOME_Evolution_OfflineProgressListener *) servant, &ev);
+
+ CORBA_exception_free (&ev);
+
g_free (servant->component_id);
g_free (servant);
}
@@ -278,20 +291,12 @@ static void
component_info_free (ComponentInfo *component_info)
{
CORBA_Environment ev;
- PortableServer_ObjectId *oid;
CORBA_exception_init (&ev);
g_free (component_info->id);
- oid = PortableServer_POA_servant_to_id (bonobo_poa (), component_info->progress_listener_servant, &ev);
- PortableServer_POA_deactivate_object (bonobo_poa (), oid, &ev);
- CORBA_free (oid);
-
- POA_GNOME_Evolution_OfflineProgressListener__fini
- ((POA_GNOME_Evolution_OfflineProgressListener *) component_info->progress_listener_servant, &ev);
progress_listener_servant_free (component_info->progress_listener_servant);
-
CORBA_Object_release (component_info->progress_listener_interface, &ev);
CORBA_Object_release (component_info->offline_interface, &ev);