From afd3383648a3fc4a6bf316d033f1ccf55a3910fb Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Tue, 7 Dec 2021 18:53:11 +0100 Subject: [PATCH] pdf: Fix dispose implementation Dispose must be safe against multiple runs, so set pointers to NULL after freeing them. --- backend/pdf/ev-poppler.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/backend/pdf/ev-poppler.c b/backend/pdf/ev-poppler.c index 8dc9035e..27c9a2e8 100644 --- a/backend/pdf/ev-poppler.c +++ b/backend/pdf/ev-poppler.c @@ -224,17 +224,9 @@ pdf_document_dispose (GObject *object) pdf_document->annots = NULL; } - if (pdf_document->document) { - g_object_unref (pdf_document->document); - } - - if (pdf_document->font_info) { - poppler_font_info_free (pdf_document->font_info); - } - - if (pdf_document->fonts_iter) { - poppler_fonts_iter_free (pdf_document->fonts_iter); - } + g_clear_object (&pdf_document->document); + g_clear_pointer (&pdf_document->font_info, poppler_font_info_free); + g_clear_pointer (&pdf_document->fonts_iter, poppler_fonts_iter_free); G_OBJECT_CLASS (pdf_document_parent_class)->dispose (object); }