@@ -48,7 +48,7 @@ static void init_ ##slabname## _with_stride(struct slabname *s, \
48
48
if (!stride) \
49
49
stride = 1; \
50
50
s->stride = stride; \
51
- elem_size = sizeof(struct slabname ) * stride; \
51
+ elem_size = sizeof(elemtype ) * stride; \
52
52
s->slab_size = COMMIT_SLAB_SIZE / elem_size; \
53
53
s->slab_count = 0; \
54
54
s->slab = NULL; \
@@ -72,11 +72,10 @@ static void clear_ ##slabname(struct slabname *s) \
72
72
static elemtype *slabname## _at(struct slabname *s, \
73
73
const struct commit *c) \
74
74
{ \
75
- int nth_slab, nth_slot, ix; \
75
+ int nth_slab, nth_slot; \
76
76
\
77
- ix = c->index * s->stride; \
78
- nth_slab = ix / s->slab_size; \
79
- nth_slot = ix % s->slab_size; \
77
+ nth_slab = c->index / s->slab_size; \
78
+ nth_slot = c->index % s->slab_size; \
80
79
\
81
80
if (s->slab_count <= nth_slab) { \
82
81
int i; \
@@ -89,8 +88,8 @@ static elemtype *slabname## _at(struct slabname *s, \
89
88
} \
90
89
if (!s->slab[nth_slab]) \
91
90
s->slab[nth_slab] = xcalloc(s->slab_size, \
92
- sizeof(**s->slab)); \
93
- return &s->slab[nth_slab][nth_slot]; \
91
+ sizeof(**s->slab) * s->stride ); \
92
+ return &s->slab[nth_slab][nth_slot * s->stride ]; \
94
93
} \
95
94
\
96
95
static int stat_ ##slabname## realloc
0 commit comments