X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-page-cache.c;h=ebf0de7f9b69f8d2409e51d69f75dabb0438d4aa;hb=4f6105d3df2cbf07bccd7de156693aab7e71bc31;hp=7ea0c0f9d04d7020d80b18075d95d0008b90428b;hpb=1740f9ca0bb04fbc0afc9ddb9d23a6aa2090baa1;p=evince.git diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index 7ea0c0f9..ebf0de7f 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -108,13 +108,43 @@ ev_page_cache_finalize (GObject *object) page_cache = EV_PAGE_CACHE (object); - g_free (page_cache->title); - g_free (page_cache->size_cache); - g_free (page_cache->height_to_page); - g_free (page_cache->dual_height_to_page); - g_strfreev (page_cache->page_labels); + if (page_cache->title) { + g_free (page_cache->title); + page_cache->title = NULL; + } + + if (page_cache->size_cache) { + g_free (page_cache->size_cache); + page_cache->size_cache = NULL; + } + + if (page_cache->height_to_page) { + g_free (page_cache->height_to_page); + page_cache->height_to_page = NULL; + } + + if (page_cache->dual_height_to_page) { + g_free (page_cache->dual_height_to_page); + page_cache->dual_height_to_page = NULL; + } + + if (page_cache->page_labels) { + gint i; + + for (i = 0; i < page_cache->n_pages; i++) { + if (page_cache->page_labels[i]) + g_free (page_cache->page_labels[i]); + } + g_free (page_cache->page_labels); + page_cache->page_labels = NULL; + } - ev_document_info_free (page_cache->page_info); + if (page_cache->page_info) { + ev_document_info_free (page_cache->page_info); + page_cache->page_info = NULL; + } + + G_OBJECT_CLASS (ev_page_cache_parent_class)->finalize (object); } static void @@ -341,8 +371,8 @@ ev_page_cache_set_current_page_history (EvPageCache *page_cache, int page) { if (abs (page - page_cache->current_page) > 1) - g_signal_emit (page_cache, signals [HISTORY_CHANGED], 0, page_cache->current_page); - + g_signal_emit (page_cache, signals [HISTORY_CHANGED], 0, page); + ev_page_cache_set_current_page (page_cache, page); }