1
- #define DISABLE_SIGN_COMPARE_WARNINGS
2
-
3
1
#include "git-compat-util.h"
4
2
#include "abspath.h"
5
3
#include "config.h"
@@ -845,7 +843,7 @@ static int write_midx_bitmap(struct write_midx_context *ctx,
845
843
uint32_t commits_nr ,
846
844
unsigned flags )
847
845
{
848
- int ret , i ;
846
+ int ret ;
849
847
uint16_t options = 0 ;
850
848
struct bitmap_writer writer ;
851
849
struct pack_idx_entry * * index ;
@@ -873,7 +871,7 @@ static int write_midx_bitmap(struct write_midx_context *ctx,
873
871
* this order).
874
872
*/
875
873
ALLOC_ARRAY (index , pdata -> nr_objects );
876
- for (i = 0 ; i < pdata -> nr_objects ; i ++ )
874
+ for (uint32_t i = 0 ; i < pdata -> nr_objects ; i ++ )
877
875
index [i ] = & pdata -> objects [i ].idx ;
878
876
879
877
bitmap_writer_init (& writer , ctx -> repo , pdata ,
@@ -894,7 +892,7 @@ static int write_midx_bitmap(struct write_midx_context *ctx,
894
892
* happens between bitmap_writer_build_type_index() and
895
893
* bitmap_writer_finish().
896
894
*/
897
- for (i = 0 ; i < pdata -> nr_objects ; i ++ )
895
+ for (uint32_t i = 0 ; i < pdata -> nr_objects ; i ++ )
898
896
index [ctx -> pack_order [i ]] = & pdata -> objects [i ].idx ;
899
897
900
898
bitmap_writer_select_commits (& writer , commits , commits_nr );
@@ -1040,7 +1038,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1040
1038
{
1041
1039
struct strbuf midx_name = STRBUF_INIT ;
1042
1040
unsigned char midx_hash [GIT_MAX_RAWSZ ];
1043
- uint32_t i , start_pack ;
1041
+ uint32_t start_pack ;
1044
1042
struct hashfile * f = NULL ;
1045
1043
struct lock_file lk ;
1046
1044
struct tempfile * incr ;
@@ -1156,7 +1154,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1156
1154
if (preferred_pack_name ) {
1157
1155
ctx .preferred_pack_idx = NO_PREFERRED_PACK ;
1158
1156
1159
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1157
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1160
1158
if (!cmp_idx_or_pack_name (preferred_pack_name ,
1161
1159
ctx .info [i ].pack_name )) {
1162
1160
ctx .preferred_pack_idx = i ;
@@ -1181,7 +1179,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1181
1179
* pack-order has all of its objects selected from that pack
1182
1180
* (and not another pack containing a duplicate)
1183
1181
*/
1184
- for (i = 1 ; i < ctx .nr ; i ++ ) {
1182
+ for (size_t i = 1 ; i < ctx .nr ; i ++ ) {
1185
1183
struct packed_git * p = ctx .info [i ].p ;
1186
1184
1187
1185
if (!oldest -> num_objects || p -> mtime < oldest -> mtime ) {
@@ -1225,7 +1223,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1225
1223
compute_sorted_entries (& ctx , start_pack );
1226
1224
1227
1225
ctx .large_offsets_needed = 0 ;
1228
- for (i = 0 ; i < ctx .entries_nr ; i ++ ) {
1226
+ for (size_t i = 0 ; i < ctx .entries_nr ; i ++ ) {
1229
1227
if (ctx .entries [i ].offset > 0x7fffffff )
1230
1228
ctx .num_large_offsets ++ ;
1231
1229
if (ctx .entries [i ].offset > 0xffffffff )
@@ -1235,10 +1233,10 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1235
1233
QSORT (ctx .info , ctx .nr , pack_info_compare );
1236
1234
1237
1235
if (packs_to_drop && packs_to_drop -> nr ) {
1238
- int drop_index = 0 ;
1236
+ size_t drop_index = 0 ;
1239
1237
int missing_drops = 0 ;
1240
1238
1241
- for (i = 0 ; i < ctx .nr && drop_index < packs_to_drop -> nr ; i ++ ) {
1239
+ for (size_t i = 0 ; i < ctx .nr && drop_index < packs_to_drop -> nr ; i ++ ) {
1242
1240
int cmp = strcmp (ctx .info [i ].pack_name ,
1243
1241
packs_to_drop -> items [drop_index ].string );
1244
1242
@@ -1269,7 +1267,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1269
1267
* pack_perm[old_id] = new_id
1270
1268
*/
1271
1269
ALLOC_ARRAY (ctx .pack_perm , ctx .nr );
1272
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1270
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1273
1271
if (ctx .info [i ].expired ) {
1274
1272
dropped_packs ++ ;
1275
1273
ctx .pack_perm [ctx .info [i ].orig_pack_int_id ] = PACK_EXPIRED ;
@@ -1278,7 +1276,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1278
1276
}
1279
1277
}
1280
1278
1281
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1279
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1282
1280
if (ctx .info [i ].expired )
1283
1281
continue ;
1284
1282
pack_name_concat_len += strlen (ctx .info [i ].pack_name ) + 1 ;
@@ -1424,6 +1422,9 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1424
1422
* have been freed in the previous if block.
1425
1423
*/
1426
1424
1425
+ if (ctx .num_multi_pack_indexes_before == UINT32_MAX )
1426
+ die ("too many multi-pack-indexes" );
1427
+
1427
1428
CALLOC_ARRAY (keep_hashes , ctx .num_multi_pack_indexes_before + 1 );
1428
1429
1429
1430
if (ctx .incremental ) {
@@ -1456,15 +1457,15 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1456
1457
keep_hashes [ctx .num_multi_pack_indexes_before ] =
1457
1458
xstrdup (hash_to_hex_algop (midx_hash , r -> hash_algo ));
1458
1459
1459
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before ; i ++ ) {
1460
+ for (uint32_t i = 0 ; i < ctx .num_multi_pack_indexes_before ; i ++ ) {
1460
1461
uint32_t j = ctx .num_multi_pack_indexes_before - i - 1 ;
1461
1462
1462
1463
keep_hashes [j ] = xstrdup (hash_to_hex_algop (get_midx_checksum (m ),
1463
1464
r -> hash_algo ));
1464
1465
m = m -> base_midx ;
1465
1466
}
1466
1467
1467
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before + 1 ; i ++ )
1468
+ for (uint32_t i = 0 ; i <= ctx .num_multi_pack_indexes_before ; i ++ )
1468
1469
fprintf (get_lock_file_fp (& lk ), "%s\n" , keep_hashes [i ]);
1469
1470
} else {
1470
1471
keep_hashes [ctx .num_multi_pack_indexes_before ] =
@@ -1482,7 +1483,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1482
1483
ctx .incremental );
1483
1484
1484
1485
cleanup :
1485
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1486
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1486
1487
if (ctx .info [i ].p ) {
1487
1488
close_pack (ctx .info [i ].p );
1488
1489
free (ctx .info [i ].p );
@@ -1495,7 +1496,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1495
1496
free (ctx .pack_perm );
1496
1497
free (ctx .pack_order );
1497
1498
if (keep_hashes ) {
1498
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before + 1 ; i ++ )
1499
+ for (uint32_t i = 0 ; i <= ctx .num_multi_pack_indexes_before ; i ++ )
1499
1500
free ((char * )keep_hashes [i ]);
1500
1501
free (keep_hashes );
1501
1502
}
0 commit comments