Re: [PATCH 1/1] Add a helper to reverse index_pos_to_insert_pos()
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Oct 8, 2019, 21:03 UTC
- Message-ID
- <75a9c7ce-893c-6341-ba8d-eed3ccba7ee3@kdbg.org>
- In-Reply-To
- <81648344bbab4219c0bfc60d1e5f02473ea7d495.1570517329.git.gitgitgadget@gmail.com>
Am 08.10.19 um 08:48 schrieb Johannes Schindelin via GitGitGadget:
> We have just introduced the helper `index_pos_to_insert_pos()` to help > avoiding underflows when returning `-1 - pos` for cases where we want to > return an insert position, using the ones' complement (as `int`).
We do not want to have it for *all* cases, where we return -1 - pos, but only for those cases, where the result was actually encoded by index_pos_to_insert_pos(). That excludes all cases where the argument is derived from index_name_pos(), and leaves just...
Show 8 quoted lines
> --- a/rerere.c > +++ b/rerere.c > @@ -154,7 +154,7 @@ static struct rerere_dir *find_rerere_dir(const char *hex) > rr_dir->status = NULL; > rr_dir->status_nr = 0; > rr_dir->status_alloc = 0; > - pos = -1 - pos; > + pos = insert_pos_to_index_pos(pos);
... this one...
Show 13 quoted lines
> > /* Make sure the array is big enough ... */ > ALLOC_GROW(rerere_dir, rerere_dir_nr + 1, rerere_dir_alloc); > diff --git a/sha1-name.c b/sha1-name.c > index 49855ad24f..bee7ce39ee 100644 > --- a/sha1-name.c > +++ b/sha1-name.c > @@ -98,7 +98,7 @@ static void find_short_object_filename(struct disambiguate_state *ds) > loose_objects = odb_loose_cache(odb, &ds->bin_pfx); > pos = oid_array_lookup(loose_objects, &ds->bin_pfx); > if (pos < 0) > - pos = -1 - pos; > + pos = insert_pos_to_index_pos(pos);
... and this one.
> while (!ds->ambiguous && pos < loose_objects->nr) {
> const struct object_id *oid;
> oid = loose_objects->oid + pos;-- Hannes