aboutsummaryrefslogtreecommitdiff
path: root/combine-diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-01-25 03:34:10 -0800
committerJunio C Hamano <junkio@cox.net>2006-01-28 00:08:29 -0800
commit5290a0f8129cc5830390bad3cc6c8034cb23b41c (patch)
treeaf56e23be5469742394e1f40ee8373dca6074c54 /combine-diff.c
parentd8f4790e6fe7a9d94468ea83d1370643604d43e5 (diff)
downloadgit-5290a0f8129cc5830390bad3cc6c8034cb23b41c.tar.gz
git-5290a0f8129cc5830390bad3cc6c8034cb23b41c.tar.xz
combine-diff: fix appending at the tail of a list.
... 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>
Diffstat (limited to 'combine-diff.c')
-rw-r--r--combine-diff.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/combine-diff.c b/combine-diff.c
index 062ed8a7b..eb763e113 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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++;
@@ -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;
}