aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIain Holmes <iain@src.gnome.org>2001-11-13 09:10:49 +0800
committerIain Holmes <iain@src.gnome.org>2001-11-13 09:10:49 +0800
commit8f9de356724a9f1b2c1ac3122c3014892526e82d (patch)
tree92f6fb5d740c93c3cbb4869c7e71b83252746d52
parent8d4f7dd527a290483ae4456bc23cd4a9ee0cf4e7 (diff)
downloadgsoc2013-evolution-8f9de356724a9f1b2c1ac3122c3014892526e82d.tar.gz
gsoc2013-evolution-8f9de356724a9f1b2c1ac3122c3014892526e82d.tar.zst
gsoc2013-evolution-8f9de356724a9f1b2c1ac3122c3014892526e82d.zip
Check for exceptions.
Fix a memory leak svn path=/trunk/; revision=14680
-rw-r--r--shell/ChangeLog14
-rw-r--r--shell/e-shell-startup-wizard.c44
2 files changed, 57 insertions, 1 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 5784e58f11..4bbb1c6c53 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,17 @@
+2001-11-12 Iain Holmes <iain@ximian.com>
+
+ * e-shell-startup-wizard.c (make_identity_page): Check for exception.
+ (make_receive_page): Check for exception.
+ (make_extra_page): Check for exception.
+ (make_transport_page): Check for exception.
+ (make_management_page): Check for exception.
+
+2001-11-06 Iain Holmes <iain@ximian.com>
+
+ * e-shell-startup-wizard.c (make_timezone_page): Move the call to
+ e_timezone_dialog_new out of the the GTK_OBJECT macro to stop it
+ being called 4 times, and leaking 3.
+
2001-11-05 Ettore Perazzoli <ettore@ximian.com>
* e-storage-set-view.c (set_e_shortcut_selection): Get the storage
diff --git a/shell/e-shell-startup-wizard.c b/shell/e-shell-startup-wizard.c
index c2962993d8..bb7f5ddbab 100644
--- a/shell/e-shell-startup-wizard.c
+++ b/shell/e-shell-startup-wizard.c
@@ -399,6 +399,14 @@ make_identity_page (SWData *data)
CORBA_exception_init (&ev);
page->control = GNOME_Evolution_Wizard_getControl (data->mailer, 0, &ev);
+ if (BONOBO_EX (&ev) || page->control == CORBA_OBJECT_NIL) {
+ g_warning ("Error creating page: %s", CORBA_exception_id (&ev));
+ g_free (page);
+ CORBA_exception_free (&ev);
+
+ return NULL;
+ }
+
CORBA_exception_free (&ev);
page->widget = bonobo_widget_new_control_from_objref (page->control, CORBA_OBJECT_NIL);
@@ -428,6 +436,14 @@ make_receive_page (SWData *data)
CORBA_exception_init (&ev);
page->control = GNOME_Evolution_Wizard_getControl (data->mailer, 1, &ev);
+ if (BONOBO_EX (&ev) || page->control == CORBA_OBJECT_NIL) {
+ g_warning ("Error creating page: %s", CORBA_exception_id (&ev));
+ g_free (page);
+ CORBA_exception_free (&ev);
+
+ return NULL;
+ }
+
CORBA_exception_free (&ev);
page->widget = bonobo_widget_new_control_from_objref (page->control, CORBA_OBJECT_NIL);
@@ -457,6 +473,14 @@ make_extra_page (SWData *data)
CORBA_exception_init (&ev);
page->control = GNOME_Evolution_Wizard_getControl (data->mailer, 2, &ev);
+ if (BONOBO_EX (&ev) || page->control == CORBA_OBJECT_NIL) {
+ g_warning ("Error creating page: %s", CORBA_exception_id (&ev));
+ g_free (page);
+ CORBA_exception_free (&ev);
+
+ return NULL;
+ }
+
CORBA_exception_free (&ev);
page->widget = bonobo_widget_new_control_from_objref (page->control, CORBA_OBJECT_NIL);
@@ -486,6 +510,14 @@ make_transport_page (SWData *data)
CORBA_exception_init (&ev);
page->control = GNOME_Evolution_Wizard_getControl (data->mailer, 3, &ev);
+ if (BONOBO_EX (&ev) || page->control == CORBA_OBJECT_NIL) {
+ g_warning ("Error creating page: %s", CORBA_exception_id (&ev));
+ g_free (page);
+ CORBA_exception_free (&ev);
+
+ return NULL;
+ }
+
CORBA_exception_free (&ev);
page->widget = bonobo_widget_new_control_from_objref (page->control, CORBA_OBJECT_NIL);
@@ -515,6 +547,14 @@ make_management_page (SWData *data)
CORBA_exception_init (&ev);
page->control = GNOME_Evolution_Wizard_getControl (data->mailer, 4, &ev);
+ if (BONOBO_EX (&ev) || page->control == CORBA_OBJECT_NIL) {
+ g_warning ("Error creating page: %s", CORBA_exception_id (&ev));
+ g_free (page);
+ CORBA_exception_free (&ev);
+
+ return NULL;
+ }
+
CORBA_exception_free (&ev);
page->widget = bonobo_widget_new_control_from_objref (page->control, CORBA_OBJECT_NIL);
@@ -528,6 +568,7 @@ static TimezoneDialogPage *
make_timezone_page (SWData *data)
{
TimezoneDialogPage *page;
+ ETimezoneDialog *etd;
g_return_val_if_fail (data != NULL, NULL);
@@ -537,7 +578,8 @@ make_timezone_page (SWData *data)
page->vbox = GTK_WIDGET (GNOME_DRUID_PAGE_STANDARD (page->page)->vbox);
- page->etd = GTK_OBJECT (e_timezone_dialog_new ());
+ etd = e_timezone_dialog_new ();
+ page->etd = GTK_OBJECT (etd);
e_timezone_dialog_reparent (E_TIMEZONE_DIALOG (page->etd), page->vbox);
return page;