reftable/stack: use `size_t` to track stack slices during compaction
We use `int`s to track reftable slices when compacting the reftable stack, 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 <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Patrick Steinhardt committed
Feb 6, 2024 at 07:35 UTC
47616c4399d958b8a9f40b1ad70071d2e3c56126
1 file changed
+16
-16
reftable/stack.c
+16
-16
@@ -24,7 +24,8 @@ static int stack_try_add(struct reftable_stack *st,
24
void *arg),
25
void *arg);
26
static int stack_write_compact(struct reftable_stack *st,
27
- struct reftable_writer *wr, int first, int last,
27
+ struct reftable_writer *wr,
28
+ size_t first, size_t last,
29
struct reftable_log_expiry_config *config);
30
static int stack_check_addition(struct reftable_stack *st,
31
const char *new_tab_name);
@@ -820,7 +821,8 @@ uint64_t reftable_stack_next_update_index(struct reftable_stack *st)
821
return 1;
822
}
823
823
-static int stack_compact_locked(struct reftable_stack *st, int first, int last,
824
+static int stack_compact_locked(struct reftable_stack *st,
825
+ size_t first, size_t last,
826
struct strbuf *temp_tab,
827
struct reftable_log_expiry_config *config)
828
{
@@ -864,22 +866,21 @@ done:
866
}
867
868
static int stack_write_compact(struct reftable_stack *st,
867
- struct reftable_writer *wr, int first, int last,
869
+ struct reftable_writer *wr,
870
+ size_t first, size_t last,
871
struct reftable_log_expiry_config *config)
872
{
873
int subtabs_len = last - first + 1;
874
struct reftable_table *subtabs = reftable_calloc(
875
last - first + 1, sizeof(*subtabs));
876
struct reftable_merged_table *mt = NULL;
874
- int err = 0;
877
struct reftable_iterator it = { NULL };
878
struct reftable_ref_record ref = { NULL };
879
struct reftable_log_record log = { NULL };
878
-
880
uint64_t entries = 0;
881
+ int err = 0;
882
881
- int i = 0, j = 0;
882
- for (i = first, j = 0; i <= last; i++) {
883
+ for (size_t i = first, j = 0; i <= last; i++) {
884
struct reftable_reader *t = st->readers[i];
885
reftable_table_from_reader(&subtabs[j++], t);
886
st->stats.bytes += t->size;
@@ -963,7 +964,8 @@ done:
964
}
965
966
/* < 0: error. 0 == OK, > 0 attempt failed; could retry. */
966
-static int stack_compact_range(struct reftable_stack *st, int first, int last,
967
+static int stack_compact_range(struct reftable_stack *st,
968
+ size_t first, size_t last,
969
struct reftable_log_expiry_config *expiry)
970
{
971
char **delete_on_success = NULL, **subtable_locks = NULL, **listp = NULL;
@@ -972,12 +974,10 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last,
974
struct strbuf lock_file_name = STRBUF_INIT;
975
struct strbuf ref_list_contents = STRBUF_INIT;
976
struct strbuf new_table_path = STRBUF_INIT;
977
+ size_t i, j, compact_count;
978
int err = 0;
979
int have_lock = 0;
980
int lock_file_fd = -1;
978
- int compact_count;
979
- int i = 0;
980
- int j = 0;
981
int is_empty_table = 0;
982
983
if (first > last || (!expiry && first == last)) {
@@ -1172,17 +1172,17 @@ done:
1172
int reftable_stack_compact_all(struct reftable_stack *st,
1173
struct reftable_log_expiry_config *config)
1174
{
1175
- return stack_compact_range(st, 0, st->merged->stack_len - 1, config);
1175
+ return stack_compact_range(st, 0, st->merged->stack_len ?
1176
+ st->merged->stack_len - 1 : 0, config);
1177
}
1178
1178
-static int stack_compact_range_stats(struct reftable_stack *st, int first,
1179
- int last,
1179
+static int stack_compact_range_stats(struct reftable_stack *st,
1180
+ size_t first, size_t last,
1181
struct reftable_log_expiry_config *config)
1182
{
1183
int err = stack_compact_range(st, first, last, config);
1183
- if (err > 0) {
1184
+ if (err > 0)
1185
st->stats.failures++;
1185
- }
1186
return err;
1187
}
1188