On 22/09/17 06:29, Jeff King wrote:
> On Thu, Sep 21, 2017 at 05:47:36PM +0100, Ramsay Jones wrote:
>
>> diff --git a/commit-slab.h b/commit-slab.h
>> index 333d81e37..dcaab8ca0 100644
>> --- a/commit-slab.h
>> +++ b/commit-slab.h
>> @@ -78,7 +78,7 @@ static MAYBE_UNUSED void init_ ##slabname(struct slabname
>> *s) \
>> \
>> static MAYBE_UNUSED void clear_ ##slabname(struct slabname *s)
>> \
>> { \
>> - int i; \
>> + unsigned int i; \
>> for (i = 0; i < s->slab_count; i++) \
>> free(s->slab[i]); \
>> s->slab_count = 0; \
>> @@ -89,13 +89,13 @@ static MAYBE_UNUSED elemtype *slabname## _at_peek(struct
>> slabname *s, \
>> const struct commit *c, \
>> int add_if_missing) \
>> { \
>> - int nth_slab, nth_slot; \
>> + unsigned int nth_slab, nth_slot; \
>
> I have a feeling that in the long run these should all be size_t, but
> it's probably pretty unlikely to overflow in practice. At any rate, the
> slab index itself is an unsigned, so it probably makes sense to match
> that for now.
Yes, I briefly considered that, but I didn't want to think about
possible effects of the increased size of 'struct slabname'. I suspect
that it is very unlikely to cause an issue, but I had similar concerns
with the 'ALLOC_GROW' patch, were it would have been more likely to
cause memory pressure issues (to e.g. s/int/size_t/). I decided that it
could be addressed separately, with a patch on top, if necessary.
ATB,
Ramsay Jones