Skip to content

Commit

Permalink
combine-diff: fix appending at the tail of a list.
Browse files Browse the repository at this point in the history
... and use the established pattern of tail initialized to point
at the head pointer for an empty list, and updated to point at
the next pointer field of the item at the tail when appending.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Jan 28, 2006
1 parent d8f4790 commit 5290a0f
Showing 1 changed file with 6 additions and 11 deletions.
17 changes: 6 additions & 11 deletions combine-diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ static struct path_list *intersect_paths(struct path_list *curr,
int i;

if (!n) {
struct path_list *list = NULL, *tail = NULL;
struct path_list *list = NULL, **tail = &list;
for (i = 0; i < q->nr; i++) {
int len;
const char *path;
Expand All @@ -46,12 +46,8 @@ static struct path_list *intersect_paths(struct path_list *curr,
p->next = NULL;
memcpy(p->sha1, q->queue[i]->two->sha1, 20);
memcpy(p->parent_sha1[n], q->queue[i]->one->sha1, 20);
if (!tail)
list = tail = p;
else {
tail->next = p;
p = tail;
}
*tail = p;
tail = &p->next;
}
return list;
}
Expand Down Expand Up @@ -212,10 +208,7 @@ static void append_lost(struct sline *sline, int n, const char *line)
lline->parent_map = this_mask;
memcpy(lline->line, line, len);
lline->line[len] = 0;
if (sline->lost_head)
*(sline->lost_tail) = lline;
else
sline->lost_head = lline;
*sline->lost_tail = lline;
sline->lost_tail = &lline->next;
}

Expand Down Expand Up @@ -433,6 +426,7 @@ static void show_combined_diff(struct path_list *elem, int num_parent,
sline[0].bol = result;
for (lno = 0, cp = result; cp - result < size; cp++) {
if (*cp == '\n') {
sline[lno].lost_tail = &sline[lno].lost_head;
sline[lno].len = cp - sline[lno].bol;
sline[lno].flag = (1UL<<num_parent) - 1;
lno++;
Expand All @@ -441,6 +435,7 @@ static void show_combined_diff(struct path_list *elem, int num_parent,
}
}
if (result[size-1] != '\n') {
sline[cnt-1].lost_tail = &sline[cnt-1].lost_head;
sline[cnt-1].len = size - (sline[cnt-1].bol - result);
sline[cnt-1].flag = (1UL<<num_parent) - 1;
}
Expand Down

0 comments on commit 5290a0f

Please sign in to comment.