summaryrefslogtreecommitdiff
path: root/merge-recursive.c
diff options
context:
space:
mode:
authorShawn Pearce <spearce@spearce.org>2006-08-23 02:49:00 -0400
committerJunio C Hamano <junkio@cox.net>2006-08-23 14:27:00 -0700
commit8da714939458fed99ff750ca09d4169fe68b034e (patch)
tree7bb75e00dfdd5a49880313e25b814e8e05d3a17d /merge-recursive.c
parent2ad6ba353aa3815894674a0dee56aa75f8a5fc7b (diff)
downloadgit-8da714939458fed99ff750ca09d4169fe68b034e.tar.gz
Convert memcpy(a,b,20) to hashcpy(a,b).
This abstracts away the size of the hash values when copying them from memory location to memory location, much as the introduction of hashcmp abstracted away hash value comparsion. A few call sites were using char* rather than unsigned char* so I added the cast rather than open hashcpy to be void*. This is a reasonable tradeoff as most call sites already use unsigned char* and the existing hashcmp is also declared to be unsigned char*. [jc: this is a follow-up patch for merge-recursive.c which is not in "master" yet. The original was sent-in for "next" so I splitted it out. ] Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'merge-recursive.c')
-rw-r--r--merge-recursive.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index 048cca1d13..8a2f69731e 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -158,7 +158,7 @@ static struct cache_entry *make_cache_entry(unsigned int mode,
size = cache_entry_size(len);
ce = xcalloc(1, size);
- memcpy(ce->sha1, sha1, 20);
+ hashcpy(ce->sha1, sha1);
memcpy(ce->name, path, len);
ce->ce_flags = create_ce_flags(len, stage);
ce->ce_mode = create_ce_mode(mode);
@@ -355,7 +355,7 @@ static struct path_list *get_unmerged(void)
}
e = item->util;
e->stages[ce_stage(ce)].mode = ntohl(ce->ce_mode);
- memcpy(e->stages[ce_stage(ce)].sha, ce->sha1, 20);
+ hashcpy(e->stages[ce_stage(ce)].sha, ce->sha1);
}
return unmerged;
@@ -636,10 +636,10 @@ static struct merge_file_info merge_file(struct diff_filespec *o,
result.clean = 0;
if (S_ISREG(a->mode)) {
result.mode = a->mode;
- memcpy(result.sha, a->sha1, 20);
+ hashcpy(result.sha, a->sha1);
} else {
result.mode = b->mode;
- memcpy(result.sha, b->sha1, 20);
+ hashcpy(result.sha, b->sha1);
}
} else {
if (!sha_eq(a->sha1, o->sha1) && !sha_eq(b->sha1, o->sha1))
@@ -648,9 +648,9 @@ static struct merge_file_info merge_file(struct diff_filespec *o,
result.mode = a->mode == o->mode ? b->mode: a->mode;
if (sha_eq(a->sha1, o->sha1))
- memcpy(result.sha, b->sha1, 20);
+ hashcpy(result.sha, b->sha1);
else if (sha_eq(b->sha1, o->sha1))
- memcpy(result.sha, a->sha1, 20);
+ hashcpy(result.sha, a->sha1);
else if (S_ISREG(a->mode)) {
int code = 1, fd;
struct stat st;
@@ -699,7 +699,7 @@ static struct merge_file_info merge_file(struct diff_filespec *o,
if (!(S_ISLNK(a->mode) || S_ISLNK(b->mode)))
die("cannot merge modes?");
- memcpy(result.sha, a->sha1, 20);
+ hashcpy(result.sha, a->sha1);
if (!sha_eq(a->sha1, b->sha1))
result.clean = 0;
@@ -1096,11 +1096,11 @@ static int process_entry(const char *path, struct stage_data *entry,
output("Auto-merging %s", path);
o.path = a.path = b.path = (char *)path;
- memcpy(o.sha1, o_sha, 20);
+ hashcpy(o.sha1, o_sha);
o.mode = o_mode;
- memcpy(a.sha1, a_sha, 20);
+ hashcpy(a.sha1, a_sha);
a.mode = a_mode;
- memcpy(b.sha1, b_sha, 20);
+ hashcpy(b.sha1, b_sha);
b.mode = b_mode;
mfi = merge_file(&o, &a, &b,