diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 22 | ||||
-rw-r--r-- | calendar/gui/calendar-config.c | 1 | ||||
-rw-r--r-- | calendar/gui/comp-editor-factory.c | 1 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 2 | ||||
-rw-r--r-- | calendar/gui/e-cal-model.c | 5 | ||||
-rw-r--r-- | calendar/gui/e-calendar-table.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-day-view-main-item.c | 40 | ||||
-rw-r--r-- | calendar/gui/e-day-view-top-item.c | 9 | ||||
-rw-r--r-- | calendar/gui/e-day-view.c | 5 | ||||
-rw-r--r-- | calendar/gui/e-memo-table.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 2 | ||||
-rw-r--r-- | calendar/gui/migration.c | 1 | ||||
-rw-r--r-- | calendar/gui/print.c | 4 |
13 files changed, 77 insertions, 17 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 58495a446d..9c004bf36b 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,25 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * gui/dialogs/comp-editor.c: (drop_action): + * gui/calendar-config.c: + (calendar_config_get_hide_completed_tasks_sexp): + * gui/comp-editor-factory.c: (edit_existing): + * gui/e-day-view.c: (e_day_view_reshape_long_event), + (e_day_view_on_top_canvas_drag_data_received): + * gui/e-day-view-main-item.c: + (e_day_view_main_item_draw_events_in_vbars), + (e_day_view_main_item_draw_long_events_in_vbars): + * gui/e-day-view-top-item.c: (e_day_view_top_item_draw_long_event): + * gui/e-cal-model.c: (redo_queries): + * gui/e-calendar-table.c: (e_calendar_table_open_task): + * gui/e-memo-table.c: (open_memo): + * gui/print.c: (print_todo_details): + * gui/migration.c: (get_source_name): + Memory leak fix. + * gui/e-week-view.c: (e_week_view_reshape_events): Simplifies things. + 2008-02-18 Srinivasa Ragavan <sragavan@novell.com> ** Fix for bnc #178778 diff --git a/calendar/gui/calendar-config.c b/calendar/gui/calendar-config.c index e8cc126f5d..8599e5ffd8 100644 --- a/calendar/gui/calendar-config.c +++ b/calendar/gui/calendar-config.c @@ -1572,6 +1572,7 @@ calendar_config_get_hide_completed_tasks_sexp (gboolean get_completed) sexp = g_strdup_printf ("(not (completed-before? (make-time \"%s\")))", isodate); else sexp = g_strdup_printf ("(completed-before? (make-time \"%s\"))", isodate); + g_free (isodate); } } diff --git a/calendar/gui/comp-editor-factory.c b/calendar/gui/comp-editor-factory.c index 6643d49ecd..99bc173e7b 100644 --- a/calendar/gui/comp-editor-factory.c +++ b/calendar/gui/comp-editor-factory.c @@ -281,6 +281,7 @@ edit_existing (OpenClient *oc, const char *uid) /* Set the object on the editor */ comp_editor_edit_comp (editor, comp); comp_editor_focus (editor); + g_object_unref (comp); oc->editor_count++; g_signal_connect (editor, "destroy", G_CALLBACK (editor_destroy_cb), oc); diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index b01667d6dd..5a8be391ee 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -310,7 +310,7 @@ drop_action(CompEditor *editor, GdkDragContext *context, guint32 action, GtkSele } } - g_free (urls); + g_strfreev (urls); success = TRUE; break; case DND_TYPE_TEXT_VCARD: diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index 9f2f3c4ada..3fda497431 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -1748,7 +1748,6 @@ static void redo_queries (ECalModel *model) { ECalModelPrivate *priv; - char *iso_start, *iso_end; GList *l; int len; @@ -1758,6 +1757,8 @@ redo_queries (ECalModel *model) g_free (priv->full_sexp); if (priv->start != -1 && priv->end != -1) { + char *iso_start, *iso_end; + iso_start = isodate_from_time_t (priv->start); iso_end = isodate_from_time_t (priv->end); @@ -1766,6 +1767,8 @@ redo_queries (ECalModel *model) " %s)", iso_start, iso_end, priv->search_sexp ? priv->search_sexp : ""); + g_free (iso_start); + g_free (iso_end); } else if (priv->search_sexp) { priv->full_sexp = g_strdup (priv->search_sexp); } else { diff --git a/calendar/gui/e-calendar-table.c b/calendar/gui/e-calendar-table.c index f649c1b17c..86703be736 100644 --- a/calendar/gui/e-calendar-table.c +++ b/calendar/gui/e-calendar-table.c @@ -1075,6 +1075,7 @@ e_calendar_table_open_task (ECalendarTable *cal_table, ECal *client, icalcompone tedit = COMP_EDITOR (task_editor_new (client, flags)); comp_editor_edit_comp (tedit, comp); + g_object_unref (comp); if (flags & COMP_EDITOR_IS_ASSIGNED) task_editor_show_assignment (TASK_EDITOR (tedit)); diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c index 58212f0d8e..d9444c6b7e 100644 --- a/calendar/gui/e-day-view-main-item.c +++ b/calendar/gui/e-day-view-main-item.c @@ -373,21 +373,27 @@ e_day_view_main_item_draw_events_in_vbars (EDayViewMainItem *dvmitem, /* If the event is TRANSPARENT, skip it. */ e_cal_component_get_transparency (comp, &transparency); - if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) + if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) { + g_object_unref (comp); continue; + } /* We can skip the events in the first column since they will draw over this anyway. */ - if (event->num_columns > 0 && event->start_row_or_col == 0) + if (event->num_columns > 0 && event->start_row_or_col == 0) { + g_object_unref (comp); continue; + } bar_y = event->start_minute * day_view->row_height / day_view->mins_per_row; bar_h = event->end_minute * day_view->row_height / day_view->mins_per_row - bar_y; bar_y -= y; /* Skip it if it isn't visible. */ - if (bar_y >= height || bar_y + bar_h <= 0) + if (bar_y >= height || bar_y + bar_h <= 0) { + g_object_unref (comp); continue; + } gdk_draw_rectangle (drawable, gc, TRUE, grid_x, bar_y, @@ -427,14 +433,18 @@ e_day_view_main_item_draw_long_events_in_vbars (EDayViewMainItem *dvmitem, /* If the event is TRANSPARENT, skip it. */ e_cal_component_get_transparency (comp, &transparency); - if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) + if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) { + g_object_unref (comp); continue; + } if (!e_day_view_find_long_event_days (event, day_view->days_shown, day_view->day_starts, - &start_day, &end_day)) + &start_day, &end_day)) { + g_object_unref (comp); continue; + } for (day = start_day; day <= end_day; day++) { grid_x = day_view->day_offsets[day] + 1 - x; @@ -1099,21 +1109,27 @@ e_day_view_main_item_draw_events_in_vbars (EDayViewMainItem *dvmitem, /* If the event is TRANSPARENT, skip it. */ e_cal_component_get_transparency (comp, &transparency); - if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) + if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) { + g_object_unref (comp); continue; + } /* We can skip the events in the first column since they will draw over this anyway. */ - if (event->num_columns > 0 && event->start_row_or_col == 0) + if (event->num_columns > 0 && event->start_row_or_col == 0) { + g_object_unref (comp); continue; + } bar_y = event->start_minute * day_view->row_height / day_view->mins_per_row; bar_h = event->end_minute * day_view->row_height / day_view->mins_per_row - bar_y; bar_y -= y; /* Skip it if it isn't visible. */ - if (bar_y >= height || bar_y + bar_h <= 0) + if (bar_y >= height || bar_y + bar_h <= 0) { + g_object_unref (comp); continue; + } cairo_rectangle (cr, grid_x, bar_y, E_DAY_VIEW_BAR_WIDTH - 2, bar_h); @@ -1169,14 +1185,18 @@ e_day_view_main_item_draw_long_events_in_vbars (EDayViewMainItem *dvmitem, /* If the event is TRANSPARENT, skip it. */ e_cal_component_get_transparency (comp, &transparency); - if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) + if (transparency == E_CAL_COMPONENT_TRANSP_TRANSPARENT) { + g_object_unref (comp); continue; + } if (!e_day_view_find_long_event_days (event, day_view->days_shown, day_view->day_starts, - &start_day, &end_day)) + &start_day, &end_day)) { + g_object_unref (comp); continue; + } for (day = start_day; day <= end_day; day++) { grid_x = day_view->day_offsets[day] + 1 - x; diff --git a/calendar/gui/e-day-view-top-item.c b/calendar/gui/e-day-view-top-item.c index e04c3e2345..5f75237ec6 100644 --- a/calendar/gui/e-day-view-top-item.c +++ b/calendar/gui/e-day-view-top-item.c @@ -428,8 +428,10 @@ e_day_view_top_item_draw_long_event (EDayViewTopItem *dvtitem, /* If we are editing the event we don't show the icons or the start & end times. */ if (day_view->editing_event_day == E_DAY_VIEW_LONG_EVENT - && day_view->editing_event_num == event_num) + && day_view->editing_event_num == event_num) { + g_object_unref (comp); return; + } /* Determine the position of the label, so we know where to place the icons. Note that since the top canvas never scrolls we don't need @@ -1048,8 +1050,11 @@ e_day_view_top_item_draw_long_event (EDayViewTopItem *dvtitem, /* If we are editing the event we don't show the icons or the start & end times. */ if (day_view->editing_event_day == E_DAY_VIEW_LONG_EVENT - && day_view->editing_event_num == event_num) + && day_view->editing_event_num == event_num) { + g_object_unref (comp); + cairo_destroy (cr); return; + } /* Determine the position of the label, so we know where to place the icons. Note that since the top canvas never scrolls we don't need diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 29468c30c8..bea06bc959 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -5795,6 +5795,7 @@ e_day_view_reshape_long_event (EDayView *day_view, text_x, item_y); g_object_unref (layout); + g_object_unref (comp); } @@ -9085,8 +9086,10 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget, e_cal_component_commit_sequence (comp); if (e_cal_component_is_instance (comp)) { - if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) + if (!recur_component_dialog (client, comp, &mod, NULL, FALSE)) { + g_object_unref (comp); return; + } if (mod == CALOBJ_MOD_THIS) { e_cal_component_set_rdate_list (comp, NULL); diff --git a/calendar/gui/e-memo-table.c b/calendar/gui/e-memo-table.c index b8e55c6aaf..e877ccd940 100644 --- a/calendar/gui/e-memo-table.c +++ b/calendar/gui/e-memo-table.c @@ -764,6 +764,7 @@ open_memo (EMemoTable *memo_table, ECalModelComponent *comp_data) medit = COMP_EDITOR (memo_editor_new (comp_data->client, flags)); comp_editor_edit_comp (medit, comp); + g_object_unref (comp); e_comp_editor_registry_add (comp_editor_registry, medit, FALSE); } diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index e6dd84ad66..6dc8d0e73d 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -2525,9 +2525,9 @@ e_week_view_reshape_events (EWeekView *week_view) e_week_view_reshape_event_span (week_view, event_num, span_num); - current_comp_string = icalcomponent_as_ical_string (event->comp_data->icalcomp); if (week_view->last_edited_comp_string == NULL) continue; + current_comp_string = icalcomponent_as_ical_string (event->comp_data->icalcomp); if (strncmp (current_comp_string, week_view->last_edited_comp_string,50) == 0) { EWeekViewEventSpan *span; span = &g_array_index (week_view->spans, EWeekViewEventSpan, event->spans_index + span_num); diff --git a/calendar/gui/migration.c b/calendar/gui/migration.c index 3ed7d9fb5c..5a798c8e74 100644 --- a/calendar/gui/migration.c +++ b/calendar/gui/migration.c @@ -279,6 +279,7 @@ get_source_name (ESourceGroup *group, const char *path) break; } while (conflict); + g_strfreev (p); return g_string_free (s, FALSE); } diff --git a/calendar/gui/print.c b/calendar/gui/print.c index 7227cad3dc..af6f3b6978 100644 --- a/calendar/gui/print.c +++ b/calendar/gui/print.c @@ -1992,8 +1992,10 @@ print_todo_details (GtkPrintContext *context, GnomeCalendar *gcal, x = left; xend = right - 2; - if (y > bottom) + if (y > bottom) { + g_object_unref (comp); break; + } /* Print the box to put the tick in. */ print_border (context, x + 2, x + 8, y + 6, y + 15, 0.1, -1.0); |