On Sat, Feb 18, 2017 at 01:24:34AM +0000, Ramsay Jones wrote: > > > On 18/02/17 00:06, brian m. carlson wrote: > > There are places in the code where we would like to provide a struct > > object_id *, yet read the hash directly from the pack. Provide an > > nth_packed_object_oid function that is similar to the > > nth_packed_object_sha1 function. > > > > In order to avoid a potentially invalid cast, nth_packed_object_oid > > provides a variable into which to store the value, which it returns on > > success; on error, it returns NULL, as nth_packed_object_sha1 does. > > > > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > > --- > > cache.h | 6 ++++++ > > sha1_file.c | 17 ++++++++++++++--- > > 2 files changed, 20 insertions(+), 3 deletions(-) > > > > diff --git a/cache.h b/cache.h > > index e03a672d15..4f3bfc5ee7 100644 > > --- a/cache.h > > +++ b/cache.h > > @@ -1608,6 +1608,12 @@ extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr); > > * error. > > */ > > extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n); > > +/* > > + * Like nth_packed_object_oid, but write the data into the object specified by > ^^^ > ... Like nth_packed_object_sha1, but ... Good catch. > Having said that, if the intent is to eventually replace that function with > the new nth_packed_object_oid(), then it is probably not a good idea to > describe this function in terms of the function it will obsolete. ;-) I've chosen to define them that way for now, in the hopes that it will make them easier to use (as people are already familiar with the _sha1 version). When I remove nth_packed_object_sha1 eventually, I'll update the docstring so that the oid version is standalone. I think I've already done that somewhere else before (although it may be in a patch that I haven't sent yet). -- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | https://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: https://keybase.io/bk2204
Attachment:
signature.asc
Description: PGP signature