Re: [PATCH v3 16/19] sha1_file: introduce an nth_packed_object_oid function
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Feb 18, 2017, 01:29 UTC
- Message-ID
- <20170218012942.gr5atoshytfa2f2u@genre.crustytoothpaste.net>
- In-Reply-To
- <fc5aff14-a047-1a51-c40c-8918098f1f59@ramsayjones.plus.com>
On Sat, Feb 18, 2017 at 01:24:34AM +0000, Ramsay Jones wrote:
Show 30 quoted lines
> > > 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@crustytoothpaste.net> > > --- > > 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