From: Junio C Hamano Date: Wed, 14 Mar 2018 17:31:37 GMT Subject: Re: [PATCH v3 00/36] object_id part 12 Message-ID: In-Reply-To: <20180312022756.483934-1-sandals@crustytoothpaste.net> "brian m. carlson" writes: > -+ buf += the_hash_algo->rawsz; > -+ size -= the_hash_algo->rawsz; > ++ memcpy(it->oid.hash, (const unsigned char*)buf, rawsz); > ++ buf += rawsz; > ++ size -= rawsz; > } Using memcpy() to stuff the hash[] field of oid structure with a bare byte array of rawsz bytes appears twice as a pattern in these patches. I wonder if this is something we want to abstract behind the API, e.g. size_t oidstuff_(struct object_id *oid, const unsigned char *buf) { size_t rawsz = the_hash_algo->rawsz; memcpy(oid->hash, buf, rawsz); return rawsz; } It just felt a bit uneven to be using a bare-metal memcpy() when oidcpy() abstraction releaves the callers from having to be aware of the rawsz all the time.