[evolution-patches] patch to fix the bugs #68580 and #68525 [calendar]



Hi,
   This crash occured due to a race condition, have attached a better
stack trace for the bug 68525. Have added a boolean variable to 

thanks, chenthill.
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2691
diff -u -p -r1.2691 ChangeLog
--- ChangeLog	16 Mar 2005 14:51:00 -0000	1.2691
+++ ChangeLog	17 Mar 2005 14:06:30 -0000
@@ -1,3 +1,10 @@
+2005-03-17  Chenthill Palanisamy  <pchenthill novell com>
+
+	Fixes #68525, 68580
+	* gui/gnome-cal.c (update_query), (gnome_calendar_init):
+	Added a boolean variable to avoid crash when a race condition
+	occurs.
+
 2005-03-16  Rodrigo Moya <rodrigo novell com>
 
 	Fixes #73101
Index: gui/gnome-cal.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/gnome-cal.c,v
retrieving revision 1.368
diff -u -p -r1.368 gnome-cal.c
--- gui/gnome-cal.c	28 Feb 2005 22:12:30 -0000	1.368
+++ gui/gnome-cal.c	17 Mar 2005 14:06:31 -0000
@@ -175,6 +175,8 @@ struct _GnomeCalendarPrivate {
 	   'dates-shown-changed' signal.*/
 	time_t visible_start;
 	time_t visible_end;
+
+	gboolean updating;
 };
 
 /* Signal IDs */
@@ -715,6 +717,10 @@ update_query (GnomeCalendar *gcal)
 
 	priv = gcal->priv;
 
+	if (priv->updating == TRUE) 
+		return;
+
+	priv->updating = TRUE;
 	e_calendar_view_set_status_message (E_CALENDAR_VIEW (priv->week_view), _("Updating query"));
 	e_calendar_item_clear_marks (priv->date_navigator->calitem);
 
@@ -731,12 +737,13 @@ update_query (GnomeCalendar *gcal)
 
 	g_list_free (priv->dn_queries);
 	priv->dn_queries = NULL;
-
+	
 	g_assert (priv->sexp != NULL);
 
 	real_sexp = adjust_e_cal_view_sexp (gcal, priv->sexp);
 	if (!real_sexp) {
 		e_calendar_view_set_status_message (E_CALENDAR_VIEW (priv->week_view), NULL);
+		priv->updating = FALSE;
 		return; /* No time range is set, so don't start a query */
 	}
 
@@ -769,8 +776,10 @@ update_query (GnomeCalendar *gcal)
 
 	/* free memory */
 	g_free (real_sexp);
+	priv->updating = FALSE;
 	e_calendar_view_set_status_message (E_CALENDAR_VIEW (priv->week_view), NULL);
 	update_todo_view (gcal);
+
 }
 
 static void
@@ -1412,6 +1421,7 @@ gnome_calendar_init (GnomeCalendar *gcal
 
 	priv->visible_start = -1;
 	priv->visible_end = -1;
+	priv->updating = FALSE;
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]