aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wombat/ChangeLog7
-rw-r--r--wombat/wombat.c44
2 files changed, 20 insertions, 31 deletions
diff --git a/wombat/ChangeLog b/wombat/ChangeLog
index e05e509123..9eb9dea30e 100644
--- a/wombat/ChangeLog
+++ b/wombat/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-16 Federico Mena Quintero <federico@ximian.com>
+
+ * wombat.c (main): Unref the factories if we failed to initialize
+ anything.
+ (setup_pcs): Call cal_factory_oaf_register(). Removed the OAF
+ registration code from here; now it is in the CalFactory itself.
+
2001-02-12 Kjartan Maraas <kmaraas@gnome.org>
* Makefile.am: xml-i18n-tools setup.
diff --git a/wombat/wombat.c b/wombat/wombat.c
index 83a442acc7..fb3bfc5ab2 100644
--- a/wombat/wombat.c
+++ b/wombat/wombat.c
@@ -111,37 +111,10 @@ last_calendar_gone_cb (CalFactory *factory, gpointer data)
queue_termination ();
}
-static gboolean
-register_pcs (CORBA_Object obj)
-{
- OAF_RegistrationResult result;
-
- result = oaf_active_server_register
- ("OAFIID:GNOME_Evolution_Wombat_CalendarFactory",
- obj);
-
- switch (result) {
- case OAF_REG_SUCCESS:
- return TRUE; /* Wooho! */
- case OAF_REG_NOT_LISTED:
- g_message ("Cannot register the PCS because not listed");
- return FALSE;
- case OAF_REG_ALREADY_ACTIVE:
- g_message ("Cannot register the PCS because already active");
- return FALSE;
- case OAF_REG_ERROR:
- default:
- g_message ("Cannot register the PCS because we suck");
- return FALSE;
- }
-}
-
/* Creates the calendar factory object and registers it */
static gboolean
setup_pcs (int argc, char **argv)
{
- CORBA_Object object;
-
cal_factory = cal_factory_new ();
if (!cal_factory) {
@@ -151,9 +124,7 @@ setup_pcs (int argc, char **argv)
cal_factory_register_method (cal_factory, "file", CAL_BACKEND_FILE_TYPE);
- object = bonobo_object_corba_objref (BONOBO_OBJECT (cal_factory));
-
- if (!register_pcs (object)) {
+ if (!cal_factory_oaf_register (cal_factory)) {
bonobo_object_unref (BONOBO_OBJECT (cal_factory));
cal_factory = NULL;
return FALSE;
@@ -225,7 +196,18 @@ main (int argc, char **argv)
if (!(setup_pas (argc, argv)
&& setup_pcs (argc, argv)
&& setup_config (argc, argv))) {
- g_message ("main(): could not initialize all of the Wombat services");
+ g_message ("main(): could not initialize all of the Wombat services; terminating");
+
+ if (pas_book_factory) {
+ bonobo_object_unref (BONOBO_OBJECT (pas_book_factory));
+ pas_book_factory = NULL;
+ }
+
+ if (cal_factory) {
+ bonobo_object_unref (BONOBO_OBJECT (cal_factory));
+ cal_factory = NULL;
+ }
+
exit (EXIT_FAILURE);
}