Skip to content

Commit

Permalink
Use hashcpy() when copying object names
Browse files Browse the repository at this point in the history
We invented hashcpy() to keep the abstraction of "object name"
behind it.  Use it instead of calling memcpy() with hard-coded
20-byte length when moving object names between pieces of memory.

Leave ppc/sha1.c as-is, because the function is about the SHA-1 hash
algorithm whose output is and will always be 20 bytes.

Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Helped-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Sun He <sunheehnus@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
sunheehnus authored and gitster committed Mar 6, 2014
1 parent 6ab4ae2 commit 50546b1
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion bundle.c
Expand Up @@ -19,7 +19,7 @@ static void add_to_ref_list(const unsigned char *sha1, const char *name,
list->list = xrealloc(list->list,
list->alloc * sizeof(list->list[0]));
}
memcpy(list->list[list->nr].sha1, sha1, 20);
hashcpy(list->list[list->nr].sha1, sha1);
list->list[list->nr].name = xstrdup(name);
list->nr++;
}
Expand Down
2 changes: 1 addition & 1 deletion grep.c
Expand Up @@ -1650,7 +1650,7 @@ void grep_source_init(struct grep_source *gs, enum grep_source_type type,
break;
case GREP_SOURCE_SHA1:
gs->identifier = xmalloc(20);
memcpy(gs->identifier, identifier, 20);
hashcpy(gs->identifier, identifier);
break;
case GREP_SOURCE_BUF:
gs->identifier = NULL;
Expand Down
2 changes: 1 addition & 1 deletion pack-bitmap-write.c
Expand Up @@ -530,7 +530,7 @@ void bitmap_writer_finish(struct pack_idx_entry **index,
header.version = htons(default_version);
header.options = htons(flags | options);
header.entry_count = htonl(writer.selected_nr);
memcpy(header.checksum, writer.pack_checksum, 20);
hashcpy(header.checksum, writer.pack_checksum);

sha1write(f, &header, sizeof(header));
dump_bitmap(f, writer.commits);
Expand Down
4 changes: 2 additions & 2 deletions reflog-walk.c
Expand Up @@ -32,8 +32,8 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1,
sizeof(struct reflog_info));
}
item = array->items + array->nr;
memcpy(item->osha1, osha1, 20);
memcpy(item->nsha1, nsha1, 20);
hashcpy(item->osha1, osha1);
hashcpy(item->nsha1, nsha1);
item->email = xstrdup(email);
item->timestamp = timestamp;
item->tz = tz;
Expand Down
2 changes: 1 addition & 1 deletion refs.c
Expand Up @@ -1222,7 +1222,7 @@ static int resolve_gitlink_packed_ref(struct ref_cache *refs,
if (ref == NULL)
return -1;

memcpy(sha1, ref->u.value.sha1, 20);
hashcpy(sha1, ref->u.value.sha1);
return 0;
}

Expand Down

0 comments on commit 50546b1

Please sign in to comment.