diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2007-02-06 10:05:30 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2007-02-06 10:05:30 (GMT) |
commit | 31fb044ff1dd30863ae70bcd320319f000f52f9e (patch) | |
tree | 057eb38c206222b81c7a7250077e7fd4c45b7c64 /shell | |
parent | 531db966e66aa1b1c1638fc5260e49334b808e9e (diff) |
Add some checks and call parent_class->finalize. Fixes bug #404745.
2007-02-06 Carlos Garcia Campos <carlosgc@gnome.org>
* shell/ev-page-cache.c: (ev_page_cache_finalize):
Add some checks and call parent_class->finalize. Fixes bug #404745.
svn path=/trunk/; revision=2299
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ev-page-cache.c | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index 070df9d..0116452 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -108,13 +108,37 @@ 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) { + g_strfreev (page_cache->page_labels); + page_cache->page_labels = NULL; + } + + if (page_cache->page_info) { + ev_document_info_free (page_cache->page_info); + page_cache->page_info = NULL; + } - ev_document_info_free (page_cache->page_info); + G_OBJECT_CLASS (ev_page_cache_parent_class)->finalize (object); } static void |