blame: move blame_entry duplication to add_blame_entry()
All callers of add_blame_entry() allocate and copy the second argument. Let the function do it for them, reducing code duplication. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe committed
Mar 10, 2017 at 01:12 UTC
dfa3ad32386f95ae954d65163152f8130e3586a3
1 file changed
+8
-17
builtin/blame.c
+8
-17
@@ -657,8 +657,11 @@ static struct origin *find_rename(struct scoreboard *sb,
657
/*
658
* Append a new blame entry to a given output queue.
659
*/
660
-static void add_blame_entry(struct blame_entry ***queue, struct blame_entry *e)
660
+static void add_blame_entry(struct blame_entry ***queue,
661
+ const struct blame_entry *src)
662
{
663
+ struct blame_entry *e = xmalloc(sizeof(*e));
664
+ memcpy(e, src, sizeof(*e));
665
origin_incref(e->suspect);
666
667
e->next = **queue;
@@ -759,21 +762,15 @@ static void split_blame(struct blame_entry ***blamed,
762
struct blame_entry *split,
763
struct blame_entry *e)
764
{
762
- struct blame_entry *new_entry;
763
-
765
if (split[0].suspect && split[2].suspect) {
766
/* The first part (reuse storage for the existing entry e) */
767
dup_entry(unblamed, e, &split[0]);
768
769
/* The last part -- me */
769
- new_entry = xmalloc(sizeof(*new_entry));
770
- memcpy(new_entry, &(split[2]), sizeof(struct blame_entry));
771
- add_blame_entry(unblamed, new_entry);
770
+ add_blame_entry(unblamed, &split[2]);
771
772
/* ... and the middle part -- parent */
774
- new_entry = xmalloc(sizeof(*new_entry));
775
- memcpy(new_entry, &(split[1]), sizeof(struct blame_entry));
776
- add_blame_entry(blamed, new_entry);
773
+ add_blame_entry(blamed, &split[1]);
774
}
775
else if (!split[0].suspect && !split[2].suspect)
776
/*
@@ -784,18 +781,12 @@ static void split_blame(struct blame_entry ***blamed,
781
else if (split[0].suspect) {
782
/* me and then parent */
783
dup_entry(unblamed, e, &split[0]);
787
-
788
- new_entry = xmalloc(sizeof(*new_entry));
789
- memcpy(new_entry, &(split[1]), sizeof(struct blame_entry));
790
- add_blame_entry(blamed, new_entry);
784
+ add_blame_entry(blamed, &split[1]);
785
}
786
else {
787
/* parent and then me */
788
dup_entry(blamed, e, &split[1]);
795
-
796
- new_entry = xmalloc(sizeof(*new_entry));
797
- memcpy(new_entry, &(split[2]), sizeof(struct blame_entry));
798
- add_blame_entry(unblamed, new_entry);
789
+ add_blame_entry(unblamed, &split[2]);
790
}
791
}
792