diff options
author | Eric R. Schulz <[email protected]> | 2016-09-03 11:54:31 -0400 |
---|---|---|
committer | raveit65 <[email protected]> | 2020-01-15 13:55:30 +0100 |
commit | bb8194a94310dae72bcbd745cd7f0f93e8d6fad1 (patch) | |
tree | a50d11aa255d7aec7f1633d0d34383879646cedb /shell/ev-sidebar-thumbnails.c | |
parent | ccc66068e7aebee95da76c9871bce23b53663b15 (diff) | |
download | atril-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.c | 12 |
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); |