git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] builtin/blame.c: struct blame_entry does not need a prev link

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 21, 2014, 21:54 UTC
Message-ID
<xmqqlhy9t2z1.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1390157870-29795-2-git-send-email-dak@gnu.org>
David Kastrup <dak@gnu.org> writes:
> ---

Thanks. At some point during its development I must have thought that having it as a dual-linked list may make it easier when we have to split a block into pieces, but it seems that split_overlap() does not need to look at this information.

Needs sign-off.
Show 67 quoted lines
>  builtin/blame.c | 13 ++-----------
>  1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/builtin/blame.c b/builtin/blame.c
> index e44a6bb..2195595 100644
> --- a/builtin/blame.c
> +++ b/builtin/blame.c
> @@ -197,7 +197,6 @@ static void drop_origin_blob(struct origin *o)
>   * scoreboard structure, sorted by the target line number.
>   */
>  struct blame_entry {
> -	struct blame_entry *prev;
>  	struct blame_entry *next;
>  
>  	/* the first line of this group in the final image;
> @@ -282,8 +281,6 @@ static void coalesce(struct scoreboard *sb)
>  		    ent->s_lno + ent->num_lines == next->s_lno) {
>  			ent->num_lines += next->num_lines;
>  			ent->next = next->next;
> -			if (ent->next)
> -				ent->next->prev = ent;
>  			origin_decref(next->suspect);
>  			free(next);
>  			ent->score = 0;
> @@ -534,7 +531,7 @@ static void add_blame_entry(struct scoreboard *sb, struct blame_entry *e)
>  		prev = ent;
>  
>  	/* prev, if not NULL, is the last one that is below e */
> -	e->prev = prev;
> +
>  	if (prev) {
>  		e->next = prev->next;
>  		prev->next = e;
> @@ -543,8 +540,6 @@ static void add_blame_entry(struct scoreboard *sb, struct blame_entry *e)
>  		e->next = sb->ent;
>  		sb->ent = e;
>  	}
> -	if (e->next)
> -		e->next->prev = e;
>  }
>  
>  /*
> @@ -555,14 +550,12 @@ static void add_blame_entry(struct scoreboard *sb, struct blame_entry *e)
>   */
>  static void dup_entry(struct blame_entry *dst, struct blame_entry *src)
>  {
> -	struct blame_entry *p, *n;
> +	struct blame_entry *n;
>  
> -	p = dst->prev;
>  	n = dst->next;
>  	origin_incref(src->suspect);
>  	origin_decref(dst->suspect);
>  	memcpy(dst, src, sizeof(*src));
> -	dst->prev = p;
>  	dst->next = n;
>  	dst->score = 0;
>  }
> @@ -2502,8 +2495,6 @@ parse_done:
>  		ent->suspect = o;
>  		ent->s_lno = bottom;
>  		ent->next = next;
> -		if (next)
> -			next->prev = ent;
>  		origin_incref(o);
>  	}
>  	origin_decref(o);
Previous: David KastrupNext: David Kastrup
Message 3 of 17 in “Two janitorial patches for builtin/blame.c”
  1. 0/2 Two janitorial patches for builtin/blame.cDavid Kastrup, Jan 19, 2014
  2. 1/2 builtin/blame.c: struct blame_entry does not need a prev linkDavid Kastrup, Jan 19, 2014
  3. Junio C HamanoJan 21, 2014
  4. David KastrupJan 21, 2014
  5. 2/2 Eliminate same_suspect function in builtin/blame.cDavid Kastrup, Jan 19, 2014
  6. David KastrupJan 21, 2014
  7. Jonathan NiederJan 21, 2014
  8. David KastrupJan 21, 2014
  9. Jonathan NiederJan 21, 2014
  10. David KastrupJan 21, 2014
  11. Jonathan NiederJan 21, 2014
  12. David KastrupJan 21, 2014
  13. Jonathan NiederJan 21, 2014
  14. David KastrupJan 21, 2014
  15. Junio C HamanoJan 21, 2014
  16. David KastrupJan 21, 2014
  17. Jonathan NiederJan 21, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.