* [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings
@ 2017-09-21 16:47 Ramsay Jones
2017-09-22 5:29 ` Jeff King
0 siblings, 1 reply; 4+ messages in thread
From: Ramsay Jones @ 2017-09-21 16:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jeff King, GIT Mailing-list
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
commit-slab.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
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; \
\
nth_slab = c->index / s->slab_size; \
nth_slot = c->index % s->slab_size; \
\
if (s->slab_count <= nth_slab) { \
- int i; \
+ unsigned int i; \
if (!add_if_missing) \
return NULL; \
REALLOC_ARRAY(s->slab, nth_slab + 1); \
--
2.14.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings
2017-09-21 16:47 [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings Ramsay Jones
@ 2017-09-22 5:29 ` Jeff King
2017-09-22 15:46 ` Ramsay Jones
0 siblings, 1 reply; 4+ messages in thread
From: Jeff King @ 2017-09-22 5:29 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, GIT Mailing-list
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.
-Peff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings
2017-09-22 5:29 ` Jeff King
@ 2017-09-22 15:46 ` Ramsay Jones
2017-09-22 15:55 ` Jeff King
0 siblings, 1 reply; 4+ messages in thread
From: Ramsay Jones @ 2017-09-22 15:46 UTC (permalink / raw)
To: Jeff King; +Cc: Junio C Hamano, GIT Mailing-list
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings
2017-09-22 15:46 ` Ramsay Jones
@ 2017-09-22 15:55 ` Jeff King
0 siblings, 0 replies; 4+ messages in thread
From: Jeff King @ 2017-09-22 15:55 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, GIT Mailing-list
On Fri, Sep 22, 2017 at 04:46:48PM +0100, Ramsay Jones wrote:
> >> - 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.
I _think_ we'd be OK in all of those cases because these size_t's tend
to be once-per-big-list, not once-per-list-item. But I agree that it
would need looking into closely, and definitely should be addressed
separately.
Thanks.
-Peff
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-22 15:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-21 16:47 [PATCH 2/4] commit-slab.h: avoid -Wsign-compare warnings Ramsay Jones
2017-09-22 5:29 ` Jeff King
2017-09-22 15:46 ` Ramsay Jones
2017-09-22 15:55 ` Jeff King
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).