aboutsummaryrefslogtreecommitdiff
path: root/combine-diff.c
diff options
context:
space:
mode:
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;
}