From f302b9a420aaf02e5805b3225ce4fef5a63e9b67 Mon Sep 17 00:00:00 2001 From: Nickolay V. Shmyrev Date: Sat, 18 Jun 2005 19:22:00 +0000 Subject: Fixed lot's of memory leaks, for example, memory leak on reload, described * shell/ev-page-action.c: (match_selected_cb), (display_completion_text), (match_completion), (update_model): * shell/ev-sidebar-links.c: (ev_sidebar_links_dispose), (expand_open_links): * shell/ev-sidebar.c: (ev_sidebar_destroy), (ev_sidebar_menu_item_activate_cb), (ev_sidebar_add_page), (ev_sidebar_set_document): * shell/ev-window.c: (ev_window_xfer_job_cb), (sidebar_widget_model_set), (sidebar_page_main_widget_update_cb): Fixed lot's of memory leaks, for example, memory leak on reload, described in bug 307793. --- (limited to 'shell/ev-sidebar.c') diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c index f687d10..12bd171 100644 --- a/shell/ev-sidebar.c +++ b/shell/ev-sidebar.c @@ -65,6 +65,12 @@ ev_sidebar_destroy (GtkObject *object) gtk_menu_detach (GTK_MENU (ev_sidebar->priv->menu)); ev_sidebar->priv->menu = NULL; } + + if (ev_sidebar->priv->page_model) { + g_object_unref (ev_sidebar->priv->page_model); + ev_sidebar->priv->page_model = NULL; + } + (* GTK_OBJECT_CLASS (ev_sidebar_parent_class)->destroy) (object); } @@ -217,6 +223,8 @@ ev_sidebar_menu_item_activate_cb (GtkWidget *widget, } else { valid = gtk_tree_model_iter_next (ev_sidebar->priv->page_model, &iter); } + g_object_unref (item); + g_free (title); } } @@ -365,6 +373,7 @@ ev_sidebar_add_page (EvSidebar *ev_sidebar, gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title); gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), index); + g_free (label_title); } void @@ -401,6 +410,8 @@ ev_sidebar_set_document (EvSidebar *sidebar, } else { gtk_widget_set_sensitive (menu_widget, FALSE); } + g_object_unref (widget); + g_object_unref (menu_widget); } if (!has_pages) { -- cgit v0.9.1