diff mbox series

[v4,05/27] revision.[ch]: split freeing of revs->commit into a function

Message ID patch-v4-05.27-2d0ed57ec2e-20220331T005325Z-avarab@gmail.com (mailing list archive)
State Superseded
Headers show
Series revision.[ch]: add and use release_revisions() | expand

Commit Message

Ævar Arnfjörð Bjarmason March 31, 2022, 1:11 a.m. UTC
Move the existing code for invoking free_commit_list() and setting
revs->commits to NULL into a new release_revisions_commit_list()
function. This will be used as part of a general free()-ing mechanism
for "struct rev_info".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 revision.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Phillip Wood April 1, 2022, 3:15 p.m. UTC | #1
Hi Ævar

On 31/03/2022 02:11, Ævar Arnfjörð Bjarmason wrote:
> Move the existing code for invoking free_commit_list() and setting
> revs->commits to NULL into a new release_revisions_commit_list()
> function. This will be used as part of a general free()-ing mechanism
> for "struct rev_info".
> 
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>   revision.c | 13 +++++++++----
>   1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/revision.c b/revision.c
> index 7d435f80480..29f102cb83d 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -2923,6 +2923,14 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
>   	return left;
>   }
>   
> +static void release_revisions_commit_list(struct rev_info *revs)
> +{
> +	if (revs->commits) {

This guard copied for the original is not needed, free_commit_list() 
will handle NULL just fine.

Best Wishes

Phillip
> +		free_commit_list(revs->commits);
> +		revs->commits = NULL;
> +	}
> +}
> +
>   static void add_child(struct rev_info *revs, struct commit *parent, struct commit *child)
>   {
>   	struct commit_list *l = xcalloc(1, sizeof(*l));
> @@ -4080,10 +4088,7 @@ static void create_boundary_commit_list(struct rev_info *revs)
>   	 * boundary commits anyway.  (This is what the code has always
>   	 * done.)
>   	 */
> -	if (revs->commits) {
> -		free_commit_list(revs->commits);
> -		revs->commits = NULL;
> -	}
> +	release_revisions_commit_list(revs);
>   
>   	/*
>   	 * Put all of the actual boundary commits from revs->boundary_commits
Junio C Hamano April 1, 2022, 5:03 p.m. UTC | #2
Phillip Wood <phillip.wood123@gmail.com> writes:

>>   +static void release_revisions_commit_list(struct rev_info *revs)
>> +{
>> +	if (revs->commits) {
>
> This guard copied for the original is not needed, free_commit_list()
> will handle NULL just fine.

Thanks for a careful reading.
diff mbox series

Patch

diff --git a/revision.c b/revision.c
index 7d435f80480..29f102cb83d 100644
--- a/revision.c
+++ b/revision.c
@@ -2923,6 +2923,14 @@  int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
 	return left;
 }
 
+static void release_revisions_commit_list(struct rev_info *revs)
+{
+	if (revs->commits) {
+		free_commit_list(revs->commits);
+		revs->commits = NULL;
+	}
+}
+
 static void add_child(struct rev_info *revs, struct commit *parent, struct commit *child)
 {
 	struct commit_list *l = xcalloc(1, sizeof(*l));
@@ -4080,10 +4088,7 @@  static void create_boundary_commit_list(struct rev_info *revs)
 	 * boundary commits anyway.  (This is what the code has always
 	 * done.)
 	 */
-	if (revs->commits) {
-		free_commit_list(revs->commits);
-		revs->commits = NULL;
-	}
+	release_revisions_commit_list(revs);
 
 	/*
 	 * Put all of the actual boundary commits from revs->boundary_commits