Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Pearce <spearce@spearce.org>2006-08-23 10:49:00 +0400
committerJunio C Hamano <junkio@cox.net>2006-08-24 01:27:00 +0400
commit8da714939458fed99ff750ca09d4169fe68b034e (patch)
tree7bb75e00dfdd5a49880313e25b814e8e05d3a17d
parent2ad6ba353aa3815894674a0dee56aa75f8a5fc7b (diff)
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>
-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,