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=21f638ab8e3ddb81ce7979939defcdb7f49ad376;hp=a6d7bd9e99fc713fe8ed2f1c1ff1270bd9da6678;hpb=72fc0a73ea845307d6a109678952a0d07f6a1af4;p=evince.git diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index a6d7bd9e..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 @@ -340,9 +370,9 @@ void ev_page_cache_set_current_page_history (EvPageCache *page_cache, int page) { - if (page != page_cache->current_page) + if (abs (page - page_cache->current_page) > 1) g_signal_emit (page_cache, signals [HISTORY_CHANGED], 0, page); - + ev_page_cache_set_current_page (page_cache, page); }