Skip to content

Commit 6d5e80f

Browse files
pks-tgitster
authored andcommitted
reftable/stack: index segments with size_t
We use `int`s to index into arrays of segments and track the length of them, which is considered to be a code smell in the Git project. Convert the code to use `size_t` instead. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent ca63af0 commit 6d5e80f

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

reftable/stack.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,12 +1202,11 @@ int fastlog2(uint64_t sz)
12021202
return l - 1;
12031203
}
12041204

1205-
struct segment *sizes_to_segments(int *seglen, uint64_t *sizes, int n)
1205+
struct segment *sizes_to_segments(size_t *seglen, uint64_t *sizes, size_t n)
12061206
{
12071207
struct segment *segs = reftable_calloc(n, sizeof(*segs));
1208-
int next = 0;
12091208
struct segment cur = { 0 };
1210-
int i = 0;
1209+
size_t next = 0, i;
12111210

12121211
if (n == 0) {
12131212
*seglen = 0;
@@ -1233,29 +1232,27 @@ struct segment *sizes_to_segments(int *seglen, uint64_t *sizes, int n)
12331232
return segs;
12341233
}
12351234

1236-
struct segment suggest_compaction_segment(uint64_t *sizes, int n)
1235+
struct segment suggest_compaction_segment(uint64_t *sizes, size_t n)
12371236
{
1238-
int seglen = 0;
1239-
struct segment *segs = sizes_to_segments(&seglen, sizes, n);
12401237
struct segment min_seg = {
12411238
.log = 64,
12421239
};
1243-
int i = 0;
1240+
struct segment *segs;
1241+
size_t seglen = 0, i;
1242+
1243+
segs = sizes_to_segments(&seglen, sizes, n);
12441244
for (i = 0; i < seglen; i++) {
1245-
if (segment_size(&segs[i]) == 1) {
1245+
if (segment_size(&segs[i]) == 1)
12461246
continue;
1247-
}
12481247

1249-
if (segs[i].log < min_seg.log) {
1248+
if (segs[i].log < min_seg.log)
12501249
min_seg = segs[i];
1251-
}
12521250
}
12531251

12541252
while (min_seg.start > 0) {
1255-
int prev = min_seg.start - 1;
1256-
if (fastlog2(min_seg.bytes) < fastlog2(sizes[prev])) {
1253+
size_t prev = min_seg.start - 1;
1254+
if (fastlog2(min_seg.bytes) < fastlog2(sizes[prev]))
12571255
break;
1258-
}
12591256

12601257
min_seg.start = prev;
12611258
min_seg.bytes += sizes[prev];

reftable/stack.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ struct reftable_stack {
3232
int read_lines(const char *filename, char ***lines);
3333

3434
struct segment {
35-
int start, end;
35+
size_t start, end;
3636
int log;
3737
uint64_t bytes;
3838
};
3939

4040
int fastlog2(uint64_t sz);
41-
struct segment *sizes_to_segments(int *seglen, uint64_t *sizes, int n);
42-
struct segment suggest_compaction_segment(uint64_t *sizes, int n);
41+
struct segment *sizes_to_segments(size_t *seglen, uint64_t *sizes, size_t n);
42+
struct segment suggest_compaction_segment(uint64_t *sizes, size_t n);
4343

4444
#endif

reftable/stack_test.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ static void test_sizes_to_segments(void)
711711
uint64_t sizes[] = { 2, 3, 4, 5, 7, 9 };
712712
/* .................0 1 2 3 4 5 */
713713

714-
int seglen = 0;
714+
size_t seglen = 0;
715715
struct segment *segs =
716716
sizes_to_segments(&seglen, sizes, ARRAY_SIZE(sizes));
717717
EXPECT(segs[2].log == 3);
@@ -726,7 +726,7 @@ static void test_sizes_to_segments(void)
726726

727727
static void test_sizes_to_segments_empty(void)
728728
{
729-
int seglen = 0;
729+
size_t seglen = 0;
730730
struct segment *segs = sizes_to_segments(&seglen, NULL, 0);
731731
EXPECT(seglen == 0);
732732
reftable_free(segs);
@@ -735,8 +735,7 @@ static void test_sizes_to_segments_empty(void)
735735
static void test_sizes_to_segments_all_equal(void)
736736
{
737737
uint64_t sizes[] = { 5, 5 };
738-
739-
int seglen = 0;
738+
size_t seglen = 0;
740739
struct segment *segs =
741740
sizes_to_segments(&seglen, sizes, ARRAY_SIZE(sizes));
742741
EXPECT(seglen == 1);

0 commit comments

Comments
 (0)