[libgxps] Use g_clear_object/pointer where possible



commit e5655e01d519367a1d698f2d360b6ba34d8326a7
Author: Ignacio Casal Quinteiro <qignacio amazon com>
Date:   Fri Jan 27 10:11:01 2017 +0100

    Use g_clear_object/pointer where possible
    
    Since now we depend on an newly enough glib we can make usage
    of the methods those methods.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777851

 libgxps/gxps-archive.c            |   16 ++-----------
 libgxps/gxps-core-properties.c    |   12 +--------
 libgxps/gxps-document-structure.c |   18 +++------------
 libgxps/gxps-document.c           |   17 ++------------
 libgxps/gxps-file.c               |   36 +++++-------------------------
 libgxps/gxps-page.c               |   43 +++++++------------------------------
 libgxps/gxps-parse-utils.c        |   11 +-------
 tools/gxps-converter.c            |   17 ++------------
 tools/gxps-image-converter.c      |   11 +-------
 9 files changed, 33 insertions(+), 148 deletions(-)
---
diff --git a/libgxps/gxps-archive.c b/libgxps/gxps-archive.c
index 2b28cc5..eec30e7 100644
--- a/libgxps/gxps-archive.c
+++ b/libgxps/gxps-archive.c
@@ -119,9 +119,7 @@ _archive_close (struct archive *archive,
 {
        ZipArchive *zip = (ZipArchive *)data;
 
-       if (zip->stream)
-               g_object_unref (zip->stream);
-       zip->stream = NULL;
+       g_clear_object (&zip->stream);
 
        return ARCHIVE_OK;
 }
@@ -181,16 +179,8 @@ gxps_archive_finalize (GObject *object)
 {
        GXPSArchive *archive = GXPS_ARCHIVE (object);
 
-       if (archive->entries) {
-               g_hash_table_unref (archive->entries);
-               archive->entries = NULL;
-       }
-
-       if (archive->filename) {
-               g_object_unref (archive->filename);
-               archive->filename = NULL;
-       }
-
+       g_clear_pointer (&archive->entries, g_hash_table_unref);
+       g_clear_object (&archive->filename);
        g_clear_error (&archive->init_error);
 
        G_OBJECT_CLASS (gxps_archive_parent_class)->finalize (object);
diff --git a/libgxps/gxps-core-properties.c b/libgxps/gxps-core-properties.c
index 6c173ae..23329d6 100644
--- a/libgxps/gxps-core-properties.c
+++ b/libgxps/gxps-core-properties.c
@@ -471,16 +471,8 @@ gxps_core_properties_finalize (GObject *object)
 {
         GXPSCoreProperties *core_props = GXPS_CORE_PROPERTIES (object);
 
-        if (core_props->priv->zip) {
-                g_object_unref (core_props->priv->zip);
-                core_props->priv->zip = NULL;
-        }
-
-        if (core_props->priv->source) {
-                g_free (core_props->priv->source);
-                core_props->priv->source = NULL;
-        }
-
+        g_clear_object (&core_props->priv->zip);
+        g_clear_pointer (&core_props->priv->source, g_free);
         g_clear_error (&core_props->priv->init_error);
 
         G_OBJECT_CLASS (gxps_core_properties_parent_class)->finalize (object);
diff --git a/libgxps/gxps-document-structure.c b/libgxps/gxps-document-structure.c
index b382131..a9bafc3 100644
--- a/libgxps/gxps-document-structure.c
+++ b/libgxps/gxps-document-structure.c
@@ -86,20 +86,10 @@ gxps_document_structure_finalize (GObject *object)
 {
        GXPSDocumentStructure *structure = GXPS_DOCUMENT_STRUCTURE (object);
 
-       if (structure->priv->zip) {
-               g_object_unref (structure->priv->zip);
-               structure->priv->zip = NULL;
-       }
-
-       if (structure->priv->source) {
-               g_free (structure->priv->source);
-               structure->priv->source = NULL;
-       }
-
-       if (structure->priv->outline) {
-               g_list_free_full (structure->priv->outline, (GDestroyNotify)outline_node_free);
-               structure->priv->outline = NULL;
-       }
+       g_clear_object (&structure->priv->zip);
+       g_clear_pointer (&structure->priv->source, g_free);
+       g_list_free_full (structure->priv->outline, (GDestroyNotify)outline_node_free);
+       structure->priv->outline = NULL;
 
        G_OBJECT_CLASS (gxps_document_structure_parent_class)->finalize (object);
 }
diff --git a/libgxps/gxps-document.c b/libgxps/gxps-document.c
index 2cbf8f2..9aae6f0 100644
--- a/libgxps/gxps-document.c
+++ b/libgxps/gxps-document.c
@@ -320,20 +320,9 @@ gxps_document_finalize (GObject *object)
 {
        GXPSDocument *doc = GXPS_DOCUMENT (object);
 
-       if (doc->priv->zip) {
-               g_object_unref (doc->priv->zip);
-               doc->priv->zip = NULL;
-       }
-
-       if (doc->priv->source) {
-               g_free (doc->priv->source);
-               doc->priv->source = NULL;
-       }
-
-       if (doc->priv->structure) {
-               g_free (doc->priv->structure);
-               doc->priv->structure = NULL;
-       }
+       g_clear_object (&doc->priv->zip);
+       g_clear_pointer (&doc->priv->source, g_free);
+       g_clear_pointer (&doc->priv->structure, g_free);
 
        if (doc->priv->pages) {
                gint i;
diff --git a/libgxps/gxps-file.c b/libgxps/gxps-file.c
index 500c96f..bd57618 100644
--- a/libgxps/gxps-file.c
+++ b/libgxps/gxps-file.c
@@ -230,36 +230,12 @@ gxps_file_finalize (GObject *object)
 {
        GXPSFile *xps = GXPS_FILE (object);
 
-       if (xps->priv->zip) {
-               g_object_unref (xps->priv->zip);
-               xps->priv->zip = NULL;
-       }
-
-       if (xps->priv->file) {
-               g_object_unref (xps->priv->file);
-               xps->priv->file = NULL;
-       }
-
-       if (xps->priv->docs) {
-               g_ptr_array_free (xps->priv->docs, TRUE);
-               xps->priv->docs = NULL;
-       }
-
-       if (xps->priv->fixed_repr) {
-               g_free (xps->priv->fixed_repr);
-               xps->priv->fixed_repr = NULL;
-       }
-
-       if (xps->priv->thumbnail) {
-               g_free (xps->priv->thumbnail);
-               xps->priv->thumbnail = NULL;
-       }
-
-       if (xps->priv->core_props) {
-               g_free (xps->priv->core_props);
-               xps->priv->core_props = NULL;
-       }
-
+       g_clear_object (&xps->priv->zip);
+       g_clear_object (&xps->priv->file);
+       g_clear_pointer (&xps->priv->docs, g_ptr_array_unref);
+       g_clear_pointer (&xps->priv->fixed_repr, g_free);
+       g_clear_pointer (&xps->priv->thumbnail, g_free);
+       g_clear_pointer (&xps->priv->core_props, g_free);
        g_clear_error (&xps->priv->init_error);
 
        G_OBJECT_CLASS (gxps_file_parent_class)->finalize (object);
diff --git a/libgxps/gxps-page.c b/libgxps/gxps-page.c
index dc43f6e..8baa10b 100644
--- a/libgxps/gxps-page.c
+++ b/libgxps/gxps-page.c
@@ -1517,41 +1517,14 @@ gxps_page_finalize (GObject *object)
 {
        GXPSPage *page = GXPS_PAGE (object);
 
-       if (page->priv->zip) {
-               g_object_unref (page->priv->zip);
-               page->priv->zip = NULL;
-       }
-
-       if (page->priv->source) {
-               g_free (page->priv->source);
-               page->priv->source = NULL;
-       }
-
-       if (page->priv->init_error) {
-               g_error_free (page->priv->init_error);
-               page->priv->init_error = NULL;
-       }
-
-       if (page->priv->lang) {
-               g_free (page->priv->lang);
-               page->priv->lang = NULL;
-       }
-
-       if (page->priv->name) {
-               g_free (page->priv->name);
-               page->priv->name = NULL;
-       }
-
-       if (page->priv->image_cache) {
-               g_hash_table_destroy (page->priv->image_cache);
-               page->priv->image_cache = NULL;
-       }
-
-       if (page->priv->anchors) {
-               g_hash_table_destroy (page->priv->anchors);
-               page->priv->anchors = NULL;
-               page->priv->has_anchors = FALSE;
-       }
+       g_clear_object (&page->priv->zip);
+       g_clear_pointer (&page->priv->source, g_free);
+       g_clear_error (&page->priv->init_error);
+       g_clear_pointer (&page->priv->lang, g_free);
+       g_clear_pointer (&page->priv->name, g_free);
+       g_clear_pointer (&page->priv->image_cache, g_hash_table_destroy);
+       g_clear_pointer (&page->priv->anchors, g_hash_table_destroy);
+       page->priv->has_anchors = FALSE;
 
        G_OBJECT_CLASS (gxps_page_parent_class)->finalize (object);
 }
diff --git a/libgxps/gxps-parse-utils.c b/libgxps/gxps-parse-utils.c
index ebdf0ff..6cb6679 100644
--- a/libgxps/gxps-parse-utils.c
+++ b/libgxps/gxps-parse-utils.c
@@ -57,10 +57,7 @@ gxps_charset_converter_finalize (GObject *object)
 {
        GXPSCharsetConverter *conv = GXPS_CHARSET_CONVERTER (object);
 
-       if (conv->conv) {
-               g_object_unref (conv->conv);
-               conv->conv = NULL;
-       }
+       g_clear_object (&conv->conv);
 
        G_OBJECT_CLASS (gxps_charset_converter_parent_class)->finalize (object);
 }
@@ -138,11 +135,7 @@ gxps_charset_converter_reset (GConverter *converter)
 {
        GXPSCharsetConverter *conv = GXPS_CHARSET_CONVERTER (converter);
 
-       if (conv->conv) {
-               g_object_unref (conv->conv);
-               conv->conv = NULL;
-       }
-
+       g_clear_object (&conv->conv);
        conv->is_utf8 = FALSE;
 }
 
diff --git a/tools/gxps-converter.c b/tools/gxps-converter.c
index e961a33..79553ab 100644
--- a/tools/gxps-converter.c
+++ b/tools/gxps-converter.c
@@ -195,20 +195,9 @@ gxps_converter_finalize (GObject *object)
 {
         GXPSConverter *converter = GXPS_CONVERTER (object);
 
-        if (converter->document) {
-                g_object_unref (converter->document);
-                converter->document = NULL;
-        }
-
-        if (converter->surface) {
-                g_object_unref (converter->surface);
-                converter->surface = NULL;
-        }
-
-        if (converter->input_filename) {
-                g_free (converter->input_filename);
-                converter->input_filename = NULL;
-        }
+        g_clear_object (&converter->document);
+        g_clear_object (&converter->surface);
+        g_clear_pointer (&converter->input_filename, g_free);
 
         G_OBJECT_CLASS (gxps_converter_parent_class)->finalize (object);
 }
diff --git a/tools/gxps-image-converter.c b/tools/gxps-image-converter.c
index 76ebd4e..1b273c6 100644
--- a/tools/gxps-image-converter.c
+++ b/tools/gxps-image-converter.c
@@ -161,15 +161,8 @@ gxps_image_converter_finalize (GObject *object)
 {
         GXPSImageConverter *converter = GXPS_IMAGE_CONVERTER (object);
 
-        if (converter->page_prefix) {
-                g_free (converter->page_prefix);
-                converter->page_prefix = NULL;
-        }
-
-        if (converter->writer) {
-                g_object_unref (converter->writer);
-                converter->writer = NULL;
-        }
+        g_clear_pointer (&converter->page_prefix, g_free);
+        g_clear_object (&converter->writer);
 
         G_OBJECT_CLASS (gxps_image_converter_parent_class)->finalize (object);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]