summaryrefslogtreecommitdiff
path: root/shell/ev-sidebar-thumbnails.c
diff options
context:
space:
mode:
authorEric R. Schulz <[email protected]>2016-09-03 11:54:31 -0400
committerraveit65 <[email protected]>2020-01-15 13:55:30 +0100
commitbb8194a94310dae72bcbd745cd7f0f93e8d6fad1 (patch)
treea50d11aa255d7aec7f1633d0d34383879646cedb /shell/ev-sidebar-thumbnails.c
parentccc66068e7aebee95da76c9871bce23b53663b15 (diff)
downloadatril-bb8194a94310dae72bcbd745cd7f0f93e8d6fad1.tar.bz2
atril-bb8194a94310dae72bcbd745cd7f0f93e8d6fad1.tar.xz
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
Diffstat (limited to 'shell/ev-sidebar-thumbnails.c')
-rw-r--r--shell/ev-sidebar-thumbnails.c12
1 files 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);