diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2018-05-02 03:25:29 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-05-02 07:59:48 +0300 |
commit | 69d124255ede771ff8162652762406c55ba491c0 (patch) | |
tree | 3249ee68c31622d295b8086a435acffe8441d045 | |
parent | fe0a9eaf31dd0c349ae4308498c33a5c3794b293 (diff) |
cache: add a function to read an object ID from a buffer
In various places throughout the codebase, we need to read data into a
struct object_id from a pack or other unsigned char buffer. Add an
inline function that does this based on the current hash algorithm in
use, and use it in several places.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | cache-tree.c | 2 | ||||
-rw-r--r-- | cache.h | 5 | ||||
-rw-r--r-- | resolve-undo.c | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/cache-tree.c b/cache-tree.c index 6a555f4d43..8c7e1258a4 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -523,7 +523,7 @@ static struct cache_tree *read_one(const char **buffer, unsigned long *size_p) if (0 <= it->entry_count) { if (size < rawsz) goto free_return; - memcpy(it->oid.hash, (const unsigned char*)buf, rawsz); + oidread(&it->oid, (const unsigned char *)buf); buf += rawsz; size -= rawsz; } @@ -1008,6 +1008,11 @@ static inline void oidclr(struct object_id *oid) memset(oid->hash, 0, GIT_MAX_RAWSZ); } +static inline void oidread(struct object_id *oid, const unsigned char *hash) +{ + memcpy(oid->hash, hash, the_hash_algo->rawsz); +} + #define EMPTY_TREE_SHA1_HEX \ "4b825dc642cb6eb9a060e54bf8d69288fbee4904" diff --git a/resolve-undo.c b/resolve-undo.c index aed95b4b35..fc5b3b83d9 100644 --- a/resolve-undo.c +++ b/resolve-undo.c @@ -90,7 +90,7 @@ struct string_list *resolve_undo_read(const char *data, unsigned long size) continue; if (size < rawsz) goto error; - memcpy(ui->oid[i].hash, (const unsigned char *)data, rawsz); + oidread(&ui->oid[i], (const unsigned char *)data); size -= rawsz; data += rawsz; } |