aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-startup-wizard.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2002-07-06 02:41:35 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2002-07-06 02:41:35 +0800
commit0d2ce1a22cf93b412815ed50dfffde384cd2c5f4 (patch)
tree41ed880e40efe723636d74b106b613cdd21cac5f /shell/e-shell-startup-wizard.c
parent41a5db238a6c904d95eada0015ccbed5b4a9e4d9 (diff)
downloadgsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar.gz
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar.bz2
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar.lz
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar.xz
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.tar.zst
gsoc2013-evolution-0d2ce1a22cf93b412815ed50dfffde384cd2c5f4.zip
(startup_wizard_cancel): Unref the
ETimezoneDialog. (finish_func): Likewise. svn path=/trunk/; revision=17375
Diffstat (limited to 'shell/e-shell-startup-wizard.c')
-rw-r--r--shell/e-shell-startup-wizard.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/shell/e-shell-startup-wizard.c b/shell/e-shell-startup-wizard.c
index 33e3297bd6..3de62204dc 100644
--- a/shell/e-shell-startup-wizard.c
+++ b/shell/e-shell-startup-wizard.c
@@ -363,6 +363,12 @@ finish_func (GnomeDruidPage *page,
/* Free data */
data->cancel = FALSE;
+
+ /* Need to do this otherwise the timezone widget gets destroyed but the
+ timezone object isn't, and we can get a crash like #22047. */
+ gtk_object_unref (GTK_OBJECT (data->timezone_page->etd));
+ data->timezone_page->etd = NULL;
+
gtk_widget_destroy (data->dialog);
gtk_main_quit ();
@@ -816,6 +822,14 @@ startup_wizard_cancel (GnomeDruid *druid,
{
/* Free data */
data->cancel = TRUE;
+
+ if (data->timezone_page->etd != NULL) {
+ /* Need to do this otherwise the timezone widget gets destroyed but the
+ timezone object isn't, and we can get a crash like #22047. */
+ gtk_object_unref (GTK_OBJECT (data->timezone_page->etd));
+ data->timezone_page->etd = NULL;
+ }
+
gtk_widget_destroy (data->dialog);
gtk_main_quit ();
}