[giggle] libgiggle-git: Use g_list_free_full() convenience function



commit f0de6ce6a49d4a1b465aaaf92d94ea3ca113df5d
Author: Javier JardÃn <jjardon gnome org>
Date:   Mon Jan 2 03:21:14 2012 +0100

    libgiggle-git: Use g_list_free_full() convenience function

 libgiggle-git/giggle-git-add.c       |    3 +--
 libgiggle-git/giggle-git-authors.c   |   16 +++++++---------
 libgiggle-git/giggle-git-commit.c    |    3 +--
 libgiggle-git/giggle-git-config.c    |    3 +--
 libgiggle-git/giggle-git-diff-tree.c |    6 ++----
 libgiggle-git/giggle-git-diff.c      |    3 +--
 libgiggle-git/giggle-git-refs.c      |   19 +++++++------------
 libgiggle-git/giggle-git-revisions.c |   24 ++++++++++++++++--------
 libgiggle-git/giggle-git.c           |    3 +--
 libgiggle/giggle-revision.c          |    2 +-
 10 files changed, 38 insertions(+), 44 deletions(-)
---
diff --git a/libgiggle-git/giggle-git-add.c b/libgiggle-git/giggle-git-add.c
index 7672ada..e67053f 100644
--- a/libgiggle-git/giggle-git-add.c
+++ b/libgiggle-git/giggle-git-add.c
@@ -83,8 +83,7 @@ git_add_finalize (GObject *object)
 
 	priv = GET_PRIV (object);
 
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	G_OBJECT_CLASS (giggle_git_add_parent_class)->finalize (object);
 }
diff --git a/libgiggle-git/giggle-git-authors.c b/libgiggle-git/giggle-git-authors.c
index e1c4eaa..e671f8c 100644
--- a/libgiggle-git/giggle-git-authors.c
+++ b/libgiggle-git/giggle-git-authors.c
@@ -128,7 +128,7 @@ giggle_flexible_author_new (gchar const* name,
 }
 /* END: GiggleFlexibleAuthor API */
 
-static void     git_authors_finalize      (GObject           *object);
+static void     git_authors_dispose       (GObject           *object);
 static void     git_authors_get_property  (GObject           *object,
 					   guint              param_id,
 					   GValue            *value,
@@ -153,7 +153,7 @@ giggle_git_authors_class_init (GiggleGitAuthorsClass *class)
 	GObjectClass *object_class = G_OBJECT_CLASS (class);
 	GiggleJobClass *job_class  = GIGGLE_JOB_CLASS (class);
 
-	object_class->finalize     = git_authors_finalize;
+	object_class->dispose      = git_authors_dispose;
 	object_class->get_property = git_authors_get_property;
 	object_class->set_property = git_authors_set_property;
 
@@ -179,17 +179,16 @@ giggle_git_authors_init (GiggleGitAuthors *git_authors)
 }
 
 static void
-git_authors_finalize (GObject *object)
+git_authors_dispose (GObject *object)
 {
 	GiggleGitAuthorsPriv *priv;
 
 	priv = GET_PRIV (object);
 
-	g_list_foreach (priv->authors, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->authors);
+	g_list_free_full (priv->authors, g_object_unref);
 	priv->authors = NULL;
 
-	G_OBJECT_CLASS (giggle_git_authors_parent_class)->finalize (object);
+	G_OBJECT_CLASS (giggle_git_authors_parent_class)->dispose (object);
 }
 
 static void
@@ -346,10 +345,9 @@ authors_handle_output (GiggleJob   *job,
 		}
 	}
 
-	g_list_foreach (priv->authors, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->authors);
-
+	g_list_free_full (priv->authors, g_object_unref);
 	priv->authors = NULL;
+
 	g_hash_table_foreach (authors_by_name, (GHFunc) add_author, priv);
 
 	priv->authors = g_list_sort (priv->authors, (GCompareFunc) authors_compare_commits);
diff --git a/libgiggle-git/giggle-git-commit.c b/libgiggle-git/giggle-git-commit.c
index 1a475b7..06adb65 100644
--- a/libgiggle-git/giggle-git-commit.c
+++ b/libgiggle-git/giggle-git-commit.c
@@ -95,8 +95,7 @@ git_commit_finalize (GObject *object)
 
 	g_free (priv->log);
 
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	G_OBJECT_CLASS (giggle_git_commit_parent_class)->finalize (object);
 }
diff --git a/libgiggle-git/giggle-git-config.c b/libgiggle-git/giggle-git-config.c
index ffcb79f..54dcbfb 100644
--- a/libgiggle-git/giggle-git-config.c
+++ b/libgiggle-git/giggle-git-config.c
@@ -461,8 +461,7 @@ GIT_CONFIG_write (GiggleGitConfigTask *task)
 		g_signal_emit (task->config, signals[CHANGED], 0);
 
 		/* we're done with the task, free it */
-		g_list_foreach (priv->changed_keys, (GFunc) g_free, NULL);
-		g_list_free (priv->changed_keys);
+		g_list_free_full (priv->changed_keys, g_free);
 		g_free (task);
 	}
 }
diff --git a/libgiggle-git/giggle-git-diff-tree.c b/libgiggle-git/giggle-git-diff-tree.c
index 1a872df..f9313ce 100644
--- a/libgiggle-git/giggle-git-diff-tree.c
+++ b/libgiggle-git/giggle-git-diff-tree.c
@@ -120,8 +120,7 @@ git_diff_tree_finalize (GObject *object)
 		g_object_unref (priv->rev2);
 	}
 
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	g_hash_table_destroy (priv->actions);
 	g_hash_table_destroy (priv->sha_table1);
@@ -223,8 +222,7 @@ git_diff_tree_handle_output (GiggleJob   *job,
 
 	priv = GET_PRIV (job);
 
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	lines = g_strsplit (output_str, "\n", -1);
 
diff --git a/libgiggle-git/giggle-git-diff.c b/libgiggle-git/giggle-git-diff.c
index 7066835..3112cf8 100644
--- a/libgiggle-git/giggle-git-diff.c
+++ b/libgiggle-git/giggle-git-diff.c
@@ -127,8 +127,7 @@ git_diff_finalize (GObject *object)
 
 	g_free (priv->result);
 
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	if (priv->patch_format) {
 		g_object_unref (priv->patch_format);
diff --git a/libgiggle-git/giggle-git-refs.c b/libgiggle-git/giggle-git-refs.c
index ef75019..4db9cc5 100644
--- a/libgiggle-git/giggle-git-refs.c
+++ b/libgiggle-git/giggle-git-refs.c
@@ -35,7 +35,7 @@ struct GiggleGitRefsPriv {
 	GList *remotes;
 };
 
-static void     git_refs_finalize            (GObject           *object);
+static void     git_refs_dispose             (GObject           *object);
 static void     git_refs_get_property        (GObject           *object,
 					      guint              param_id,
 					      GValue            *value,
@@ -63,7 +63,7 @@ giggle_git_refs_class_init (GiggleGitRefsClass *class)
 	GObjectClass   *object_class = G_OBJECT_CLASS (class);
 	GiggleJobClass *job_class    = GIGGLE_JOB_CLASS (class);
 
-	object_class->finalize     = git_refs_finalize;
+	object_class->dispose      = git_refs_dispose;
 	object_class->get_property = git_refs_get_property;
 	object_class->set_property = git_refs_set_property;
 
@@ -79,22 +79,17 @@ giggle_git_refs_init (GiggleGitRefs *refs)
 }
 
 static void
-git_refs_finalize (GObject *object)
+git_refs_dispose (GObject *object)
 {
 	GiggleGitRefsPriv *priv;
 
 	priv = GET_PRIV (object);
 
-	g_list_foreach (priv->branches, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->branches);
+	g_list_free_full (priv->branches, g_object_unref);
+	g_list_free_full (priv->tags, g_object_unref);
+	g_list_free_full (priv->remotes, g_object_unref);
 
-	g_list_foreach (priv->tags, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->tags);
-
-	g_list_foreach (priv->remotes, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->remotes);
-
-	G_OBJECT_CLASS (giggle_git_refs_parent_class)->finalize (object);
+	G_OBJECT_CLASS (giggle_git_refs_parent_class)->dispose (object);
 }
 
 static void
diff --git a/libgiggle-git/giggle-git-revisions.c b/libgiggle-git/giggle-git-revisions.c
index c79cd40..7b53c99 100644
--- a/libgiggle-git/giggle-git-revisions.c
+++ b/libgiggle-git/giggle-git-revisions.c
@@ -38,20 +38,27 @@ struct _GiggleGitRevisionsPriv {
 G_DEFINE_TYPE (GiggleGitRevisions, giggle_git_revisions, GIGGLE_TYPE_JOB)
 
 static void
+git_revisions_dispose (GObject *object)
+{
+	GiggleGitRevisions *revisions = GIGGLE_GIT_REVISIONS (object);
+	GiggleGitRevisionsPriv *priv = revisions->priv;
+
+        if (priv->regex_committer)
+                g_regex_unref (priv->regex_committer);
+
+        g_list_free_full (priv->revisions, g_object_unref);
+
+        G_OBJECT_CLASS (giggle_git_revisions_parent_class)->dispose (object);
+}
+
+static void
 git_revisions_finalize (GObject *object)
 {
 	GiggleGitRevisionsPriv *priv;
 
 	priv = GIGGLE_GIT_REVISIONS (object)->priv;
 
-	if (priv->regex_committer)
-		g_regex_unref (priv->regex_committer);
-
-	g_list_foreach (priv->revisions, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->revisions);
-
-	g_list_foreach (priv->files, (GFunc) g_free, NULL);
-	g_list_free (priv->files);
+	g_list_free_full (priv->files, g_free);
 
 	G_OBJECT_CLASS (giggle_git_revisions_parent_class)->finalize (object);
 }
@@ -337,6 +344,7 @@ giggle_git_revisions_class_init (GiggleGitRevisionsClass *class)
 	GObjectClass   *object_class = G_OBJECT_CLASS (class);
 	GiggleJobClass *job_class    = GIGGLE_JOB_CLASS (class);
 
+	object_class->dispose      = git_revisions_dispose;
 	object_class->finalize     = git_revisions_finalize;
 	object_class->get_property = git_revisions_get_property;
 	object_class->set_property = git_revisions_set_property;
diff --git a/libgiggle-git/giggle-git.c b/libgiggle-git/giggle-git.c
index 89a3303..2c22bce 100644
--- a/libgiggle-git/giggle-git.c
+++ b/libgiggle-git/giggle-git.c
@@ -522,8 +522,7 @@ giggle_git_update_remotes (GiggleGit* git)
 	priv = git->priv;
 
 	/* cleanup */
-	g_list_foreach (priv->remotes, (GFunc) g_object_unref, NULL);
-	g_list_free (priv->remotes);
+	g_list_free_full (priv->remotes, g_object_unref);
 	priv->remotes = NULL;
 
 	/* list remotes */
diff --git a/libgiggle/giggle-revision.c b/libgiggle/giggle-revision.c
index d622a34..91c514f 100644
--- a/libgiggle/giggle-revision.c
+++ b/libgiggle/giggle-revision.c
@@ -250,7 +250,7 @@ giggle_revision_set_author (GiggleRevision *revision,
 	g_return_if_fail (GIGGLE_IS_REVISION (revision));
 	g_return_if_fail (GIGGLE_IS_AUTHOR (author) | !author);
 
-	g_clear_object (&revision->priv->author)
+	g_clear_object (&revision->priv->author);
 	revision->priv->author = g_object_ref (author);
 }
 



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