diff options
34 files changed, 174 insertions, 29 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 4bc276a345..ca13fc437b 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,10 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * gui/component/addressbook-migrate.c: (get_source_name): + Memory leak fix. + 2008-02-18 Srinivasa Ragavan <sragavan@novell.com> * gui/merging/eab-contact-merging.c: (mergeit): Upstream patch from diff --git a/addressbook/gui/component/addressbook-migrate.c b/addressbook/gui/component/addressbook-migrate.c index 1974ada536..f1169f7547 100644 --- a/addressbook/gui/component/addressbook-migrate.c +++ b/addressbook/gui/component/addressbook-migrate.c @@ -216,6 +216,8 @@ get_source_name (ESourceGroup *group, const char *path) } while (conflict); + g_strfreev (p); + return g_string_free (s, FALSE); } 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); diff --git a/composer/ChangeLog b/composer/ChangeLog index 9f6e9f55ff..8e6555f207 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,9 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * e-msg-composer.c: (drop_action): Memory leak fix. + 2008-01-25 Johnny Jacob <jjohnny@novell.com> ** Fix for bug #371011 diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 4d58b4b386..613b29a515 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -2962,7 +2962,7 @@ drop_action(EMsgComposer *composer, GdkDragContext *context, guint32 action, Gtk g_free (str); } - g_free (urls); + g_strfreev (urls); success = TRUE; break; case DND_TYPE_TEXT_VCARD: diff --git a/e-util/ChangeLog b/e-util/ChangeLog index 98cea5349d..148f7350fe 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,9 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * e-config.c: (ep_finalise): Use proper member to free. + 2008-02-08 Matthew Barnes <mbarnes@redhat.com> ** Fixes part of bug #509741 diff --git a/e-util/e-config.c b/e-util/e-config.c index 79e87c84b6..5918600000 100644 --- a/e-util/e-config.c +++ b/e-util/e-config.c @@ -135,7 +135,7 @@ ep_finalise(GObject *o) g_free(wn); } - while ( (cn = (struct _check_node *)e_dlist_remhead(&p->widgets)) ) { + while ( (cn = (struct _check_node *)e_dlist_remhead(&p->checks)) ) { g_free(cn->pageid); g_free(cn); } diff --git a/mail/ChangeLog b/mail/ChangeLog index 3411d8356b..ed1bf8f535 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * em-folder-view.c: (emfv_setup_view_instance): + * mail-component.c: (impl_finalize): + * message-list.c: (ml_tree_value_at): + Memory leak fix. + 2008-02-18 Srinivasa Ragavan <sragavan@novell.com> ** Fix for bug #167638 diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index cd31926862..53ec53d526 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -664,6 +664,7 @@ emfv_setup_view_instance(EMFolderView *emfv) g_free (filename); filename = g_strdup_printf ("current_wide_view-%s.xml", safe_id); p->view_instance->current_view_filename = g_build_filename (collection->local_dir, filename, NULL); + g_free (filename); g_free (safe_id); } g_free (id); diff --git a/mail/mail-component.c b/mail/mail-component.c index eb9f9c8b59..879c346494 100644 --- a/mail/mail-component.c +++ b/mail/mail-component.c @@ -489,6 +489,7 @@ impl_finalize (GObject *object) g_free (priv->context_path); g_mutex_free(priv->lock); + g_object_unref (priv->model); g_object_unref (priv->logger); g_free (priv); diff --git a/mail/message-list.c b/mail/message-list.c index 68b59449fa..3f9a3644ae 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1493,8 +1493,11 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) char **sender_name = NULL; str = camel_message_info_from (msg_info); if(str && str[0] != '\0'){ - sender_name=g_strsplit(str,"<",2); - return (void *)(*sender_name); + char *res; + sender_name = g_strsplit (str,"<",2); + res = g_strdup (*sender_name); + g_strfreev (sender_name); + return (void *)(res); } else return (void *)(""); diff --git a/plugins/external-editor/ChangeLog b/plugins/external-editor/ChangeLog index d2afbc1aaa..4f8996ea79 100644 --- a/plugins/external-editor/ChangeLog +++ b/plugins/external-editor/ChangeLog @@ -1,3 +1,10 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * external-editor.c: (convert_to_camel_internet_address), + (org_gnome_external_editor): Memory leak fix. + 2007-12-04 Sankar P <psankar@novell.com> * Committed on behalf of Denis Washington <denisw@svn.gnome.org> diff --git a/plugins/external-editor/external-editor.c b/plugins/external-editor/external-editor.c index fecc6e8de2..b34cb0717d 100644 --- a/plugins/external-editor/external-editor.c +++ b/plugins/external-editor/external-editor.c @@ -41,6 +41,7 @@ static CamelInternetAddress * convert_to_camel_internet_address (char * emails) camel_internet_address_add (cia, " ", address_tokens [i]); d(printf ("\nAdding camel_internet_address[%s] \n", address_tokens [i])); } + g_strfreev (address_tokens); return cia; } @@ -139,6 +140,8 @@ void org_gnome_external_editor (EPlugin *ep, EMMenuTargetSelect *select) g_signal_connect (GTK_OBJECT (composer), "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), NULL); gtk_widget_show (GTK_WIDGET (composer)); + + g_strfreev (tokens); } } #else diff --git a/plugins/groupwise-features/ChangeLog b/plugins/groupwise-features/ChangeLog index 075bd3661a..2aa572f794 100644 --- a/plugins/groupwise-features/ChangeLog +++ b/plugins/groupwise-features/ChangeLog @@ -1,3 +1,12 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * send-options.c: (get_source): + * share-folder-common.c: (get_container_id): + * install-shared.c: (install_folder_response): + Memory leak fix. + 2008-01-28 Andre Klapper <a9016009@gmx.de> * proxy-add-dialog.glade: string "Read" needs gettext context, diff --git a/plugins/groupwise-features/install-shared.c b/plugins/groupwise-features/install-shared.c index c0bffb23e0..0b12c39983 100644 --- a/plugins/groupwise-features/install-shared.c +++ b/plugins/groupwise-features/install-shared.c @@ -97,6 +97,7 @@ install_folder_response (EMFolderSelector *emfs, int response, gpointer *data) camel_exception_init (&ex); if (!(store = (CamelStore *) camel_session_get_service (mail_component_peek_session(NULL), uri, CAMEL_PROVIDER_STORE, &ex))) { camel_exception_clear (&ex); + g_strfreev (names); return; } @@ -122,12 +123,15 @@ install_folder_response (EMFolderSelector *emfs, int response, gpointer *data) camel_exception_init (&ex); if (!(provider = camel_provider_get(uri, &ex))) { camel_exception_clear (&ex); + g_strfreev (names); return; } /* make sure the new store belongs in the tree */ - if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE)) + if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE)) { + g_strfreev (names); return; + } em_folder_tree_model_add_store (model, store, account->name); camel_object_unref (store); diff --git a/plugins/groupwise-features/send-options.c b/plugins/groupwise-features/send-options.c index abfde2fd61..860b8469ec 100644 --- a/plugins/groupwise-features/send-options.c +++ b/plugins/groupwise-features/send-options.c @@ -374,6 +374,7 @@ get_source (ESourceList *list) if (so_uri) { if (!strcmp (so_uri, uri)) { g_free (so_uri), so_uri = NULL; + g_strfreev (temp); return E_SOURCE (r->data); } g_free (so_uri), so_uri = NULL; diff --git a/plugins/groupwise-features/share-folder-common.c b/plugins/groupwise-features/share-folder-common.c index 36b2d15449..ca1f235651 100644 --- a/plugins/groupwise-features/share-folder-common.c +++ b/plugins/groupwise-features/share-folder-common.c @@ -531,8 +531,9 @@ get_container_id(EGwConnection *cnc, gchar *fname) g_free (name); } e_gw_connection_free_container_list (container_list); - if (names) - g_strfreev(names); } + + if (names) + g_strfreev (names); return id; } diff --git a/plugins/itip-formatter/ChangeLog b/plugins/itip-formatter/ChangeLog index 8da0024274..f105e91934 100644 --- a/plugins/itip-formatter/ChangeLog +++ b/plugins/itip-formatter/ChangeLog @@ -1,3 +1,9 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * itip-formatter.c: (idle_open_cb): Memory Leak fix. + 2008-02-05 Srinivasa Ragavan <sragavan@novell.com> ** Rewrite of itip-formatter bits. It was written around carrying diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c index ca10bb35a2..4cc11a3ea2 100644 --- a/plugins/itip-formatter/itip-formatter.c +++ b/plugins/itip-formatter/itip-formatter.c @@ -1598,12 +1598,17 @@ idle_open_cb (gpointer data) { struct _itip_puri *pitip = data; struct _opencal_msg *m; + char *start, *end; + start = isodate_from_time_t (pitip->start_time); + end = isodate_from_time_t (pitip->end_time); m = mail_msg_new (&open_calendar_info); - m->command = g_strdup_printf ("evolution \"calendar://?startdate=%s&enddate=%s\"", - isodate_from_time_t (pitip->start_time), isodate_from_time_t (pitip->end_time)); + m->command = g_strdup_printf ("evolution \"calendar://?startdate=%s&enddate=%s\"", start, end); mail_msg_slow_ordered_push (m); + g_free (start); + g_free (end); + return FALSE; } diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog index 4600b576e1..46925425c9 100644 --- a/widgets/misc/ChangeLog +++ b/widgets/misc/ChangeLog @@ -1,3 +1,11 @@ +2008-02-18 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #515744 + + * e-cursors.c: (e_cursors_init): + * e-calendar-item.c: (e_calendar_item_draw_month): + Memory leak fix. + 2008-02-18 Srinivasa Ragavan <sragavan@novell.com> ** Fix for bnc #178778 diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c index 9eef0253a1..a1aa6f82be 100644 --- a/widgets/misc/e-calendar-item.c +++ b/widgets/misc/e-calendar-item.c @@ -1678,8 +1678,10 @@ e_calendar_item_draw_month (ECalendarItem *calitem, /* Just return if the month is outside the given area. */ if (month_x >= width || month_x + calitem->month_width <= 0 - || month_y >= height || month_y + calitem->month_height <= 0) + || month_y >= height || month_y + calitem->month_height <= 0) { + cairo_destroy (cr); return; + } month = calitem->month + row * calitem->cols + col; year = calitem->year + month / 12; @@ -1746,6 +1748,7 @@ e_calendar_item_draw_month (ECalendarItem *calitem, if (clip_width <= 0 || clip_height <= 0) { g_object_unref (layout); + cairo_destroy (cr); return; } diff --git a/widgets/misc/e-cursors.c b/widgets/misc/e-cursors.c index 5a709a6927..224c467733 100644 --- a/widgets/misc/e-cursors.c +++ b/widgets/misc/e-cursors.c @@ -115,11 +115,11 @@ e_cursors_init (void) e_color_init (); for (i = 0; cursors [i].hot_x; i++){ - GdkBitmap *bitmap = NULL, *mask = NULL; - if (cursors [i].hot_x < 0) cursors [i].cursor = gdk_cursor_new (cursors [i].hot_y); else { + GdkBitmap *bitmap = NULL, *mask = NULL; + create_bitmap_and_mask_from_xpm (&bitmap, &mask, cursors [i].xpm); /* The foreground and background colours are reversed. @@ -131,6 +131,9 @@ e_cursors_init (void) &e_black, &e_white, cursors [i].hot_x, cursors [i].hot_y); + + g_object_unref (bitmap); + g_object_unref (mask); } } |