From bb8194a94310dae72bcbd745cd7f0f93e8d6fad1 Mon Sep 17 00:00:00 2001 From: "Eric R. Schulz" Date: Sat, 3 Sep 2016 11:54:31 -0400 Subject: Fix memory leak in ev_sidebar_thumbnails_document_changed_cb() Clear the loading icon hash table if it already exists. https://bugzilla.gnome.org/show_bug.cgi?id=770070 origin commit: https://gitlab.gnome.org/GNOME/evince/commit/702c7c6 --- shell/ev-sidebar-thumbnails.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c index 72c365ec..adf2cf8f 100644 --- a/shell/ev-sidebar-thumbnails.c +++ b/shell/ev-sidebar-thumbnails.c @@ -925,10 +925,14 @@ ev_sidebar_thumbnails_document_changed_cb (EvDocumentModel *model, priv->n_pages = ev_document_get_n_pages (document); priv->rotation = ev_document_model_get_rotation (model); priv->inverted_colors = ev_document_model_get_inverted_colors (model); - priv->loading_icons = g_hash_table_new_full (g_str_hash, - g_str_equal, - (GDestroyNotify)g_free, - (GDestroyNotify)g_object_unref); + if (priv->loading_icons) { + g_hash_table_remove_all (priv->loading_icons); + } else { + priv->loading_icons = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify)g_free, + (GDestroyNotify)cairo_surface_destroy); + } ev_sidebar_thumbnails_clear_model (sidebar_thumbnails); ev_sidebar_thumbnails_fill_model (sidebar_thumbnails); -- cgit v1.2.1