[evolution] Bug 628654 - e_calendar_view_get_tooltips memory leak



commit eca5223b875706bd304aba1632bd303cf242e2ed
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Sep 3 08:12:04 2010 -0400

    Bug 628654 - e_calendar_view_get_tooltips memory leak

 calendar/gui/e-calendar-view.c |    4 +---
 calendar/gui/e-calendar-view.h |    2 +-
 calendar/gui/e-day-view.c      |    5 ++++-
 calendar/gui/e-week-view.c     |   10 ++++++++--
 4 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index 57a96d8..2bc7eef 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -1792,7 +1792,7 @@ e_calendar_view_get_attendees_status_info (ECalComponent *comp, ECal *client)
  */
 
 gboolean
-e_calendar_view_get_tooltips (ECalendarViewEventData *data)
+e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
 {
 	GtkWidget *label, *box, *hbox, *ebox, *frame;
 	const gchar *str;
@@ -1833,7 +1833,6 @@ e_calendar_view_get_tooltips (ECalendarViewEventData *data)
 	if (!(str && *str)) {
 		g_object_unref (newcomp);
 		gtk_widget_destroy (box);
-		g_free (data);
 
 		return FALSE;
 	}
@@ -1974,7 +1973,6 @@ e_calendar_view_get_tooltips (ECalendarViewEventData *data)
 
 	g_object_set_data (G_OBJECT (data->cal_view), "tooltip-window", pevent->tooltip);
 	g_object_unref (newcomp);
-	g_free (data);
 
 	return FALSE;
 }
diff --git a/calendar/gui/e-calendar-view.h b/calendar/gui/e-calendar-view.h
index 6f68e63..1ba1727 100644
--- a/calendar/gui/e-calendar-view.h
+++ b/calendar/gui/e-calendar-view.h
@@ -232,7 +232,7 @@ void		e_calendar_utils_show_error_silent
 void		e_calendar_utils_show_info_silent
 						(GtkWidget *widget);
 
-gboolean	e_calendar_view_get_tooltips	(ECalendarViewEventData *data);
+gboolean	e_calendar_view_get_tooltips	(const ECalendarViewEventData *data);
 
 void		e_calendar_view_move_tip	(GtkWidget *widget,
 						 gint x,
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 95bd14b..d203bd9 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -6414,7 +6414,10 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item,
 			data->day = day;
 			data->event_num = event_num;
 			data->get_view_event = (ECalendarViewEvent * (*)(ECalendarView *, int, gint)) tooltip_get_view_event;
-			pevent->timeout = g_timeout_add (500, (GSourceFunc)e_calendar_view_get_tooltips, data);
+			pevent->timeout = g_timeout_add_full (
+				G_PRIORITY_DEFAULT, 500,
+				(GSourceFunc)e_calendar_view_get_tooltips,
+				data, (GDestroyNotify) g_free);
 
 		return TRUE;
 		}
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index c842e30..91abad1 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -3014,7 +3014,10 @@ tooltip_event_cb (GnomeCanvasItem *item,
 			data->day = -1;
 			data->event_num = event_num;
 			data->get_view_event = (ECalendarViewEvent * (*)(ECalendarView *, int, gint)) tooltip_get_view_event;
-			pevent->timeout = g_timeout_add (500, (GSourceFunc)e_calendar_view_get_tooltips, data);
+			pevent->timeout = g_timeout_add_full (
+				G_PRIORITY_DEFAULT, 500,
+				(GSourceFunc)e_calendar_view_get_tooltips,
+				data, (GDestroyNotify) g_free);
 			g_object_set_data ((GObject *)view, "tooltip-timeout", GUINT_TO_POINTER (pevent->timeout));
 
 		return TRUE;
@@ -3642,7 +3645,10 @@ e_week_view_on_text_item_event (GnomeCanvasItem *item,
 		data->day = -1;
 		data->event_num = nevent;
 		data->get_view_event = (ECalendarViewEvent * (*)(ECalendarView *, int, gint)) tooltip_get_view_event;
-		pevent->timeout = g_timeout_add (500, (GSourceFunc)e_calendar_view_get_tooltips, data);
+		pevent->timeout = g_timeout_add_full (
+			G_PRIORITY_DEFAULT, 500,
+			(GSourceFunc)e_calendar_view_get_tooltips,
+			data, (GDestroyNotify) g_free);
 		g_object_set_data ((GObject *)week_view, "tooltip-timeout", GUINT_TO_POINTER (pevent->timeout));
 
 		return TRUE;



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