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 );
@@ -1056,7 +1054,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1056
1054
{
1057
1055
struct strbuf midx_name = STRBUF_INIT ;
1058
1056
unsigned char midx_hash [GIT_MAX_RAWSZ ];
1059
- uint32_t i , start_pack ;
1057
+ uint32_t start_pack ;
1060
1058
struct hashfile * f = NULL ;
1061
1059
struct lock_file lk ;
1062
1060
struct tempfile * incr ;
@@ -1172,7 +1170,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1172
1170
if (preferred_pack_name ) {
1173
1171
ctx .preferred_pack_idx = NO_PREFERRED_PACK ;
1174
1172
1175
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1173
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1176
1174
if (!cmp_idx_or_pack_name (preferred_pack_name ,
1177
1175
ctx .info [i ].pack_name )) {
1178
1176
ctx .preferred_pack_idx = i ;
@@ -1204,7 +1202,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1204
1202
* pack-order has all of its objects selected from that pack
1205
1203
* (and not another pack containing a duplicate)
1206
1204
*/
1207
- for (i = 1 ; i < ctx .nr ; i ++ ) {
1205
+ for (size_t i = 1 ; i < ctx .nr ; i ++ ) {
1208
1206
struct packed_git * p = ctx .info [i ].p ;
1209
1207
1210
1208
if (!oldest -> num_objects || p -> mtime < oldest -> mtime ) {
@@ -1249,7 +1247,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1249
1247
compute_sorted_entries (& ctx , start_pack );
1250
1248
1251
1249
ctx .large_offsets_needed = 0 ;
1252
- for (i = 0 ; i < ctx .entries_nr ; i ++ ) {
1250
+ for (size_t i = 0 ; i < ctx .entries_nr ; i ++ ) {
1253
1251
if (ctx .entries [i ].offset > 0x7fffffff )
1254
1252
ctx .num_large_offsets ++ ;
1255
1253
if (ctx .entries [i ].offset > 0xffffffff )
@@ -1259,10 +1257,10 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1259
1257
QSORT (ctx .info , ctx .nr , pack_info_compare );
1260
1258
1261
1259
if (packs_to_drop && packs_to_drop -> nr ) {
1262
- int drop_index = 0 ;
1260
+ size_t drop_index = 0 ;
1263
1261
int missing_drops = 0 ;
1264
1262
1265
- for (i = 0 ; i < ctx .nr && drop_index < packs_to_drop -> nr ; i ++ ) {
1263
+ for (size_t i = 0 ; i < ctx .nr && drop_index < packs_to_drop -> nr ; i ++ ) {
1266
1264
int cmp = strcmp (ctx .info [i ].pack_name ,
1267
1265
packs_to_drop -> items [drop_index ].string );
1268
1266
@@ -1293,7 +1291,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1293
1291
* pack_perm[old_id] = new_id
1294
1292
*/
1295
1293
ALLOC_ARRAY (ctx .pack_perm , ctx .nr );
1296
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1294
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1297
1295
if (ctx .info [i ].expired ) {
1298
1296
dropped_packs ++ ;
1299
1297
ctx .pack_perm [ctx .info [i ].orig_pack_int_id ] = PACK_EXPIRED ;
@@ -1302,7 +1300,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1302
1300
}
1303
1301
}
1304
1302
1305
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1303
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1306
1304
if (ctx .info [i ].expired )
1307
1305
continue ;
1308
1306
pack_name_concat_len += strlen (ctx .info [i ].pack_name ) + 1 ;
@@ -1448,6 +1446,9 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1448
1446
* have been freed in the previous if block.
1449
1447
*/
1450
1448
1449
+ if (ctx .num_multi_pack_indexes_before == UINT32_MAX )
1450
+ die (_ ("too many multi-pack-indexes" ));
1451
+
1451
1452
CALLOC_ARRAY (keep_hashes , ctx .num_multi_pack_indexes_before + 1 );
1452
1453
1453
1454
if (ctx .incremental ) {
@@ -1480,15 +1481,15 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1480
1481
keep_hashes [ctx .num_multi_pack_indexes_before ] =
1481
1482
xstrdup (hash_to_hex_algop (midx_hash , r -> hash_algo ));
1482
1483
1483
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before ; i ++ ) {
1484
+ for (uint32_t i = 0 ; i < ctx .num_multi_pack_indexes_before ; i ++ ) {
1484
1485
uint32_t j = ctx .num_multi_pack_indexes_before - i - 1 ;
1485
1486
1486
1487
keep_hashes [j ] = xstrdup (hash_to_hex_algop (get_midx_checksum (m ),
1487
1488
r -> hash_algo ));
1488
1489
m = m -> base_midx ;
1489
1490
}
1490
1491
1491
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before + 1 ; i ++ )
1492
+ for (uint32_t i = 0 ; i <= ctx .num_multi_pack_indexes_before ; i ++ )
1492
1493
fprintf (get_lock_file_fp (& lk ), "%s\n" , keep_hashes [i ]);
1493
1494
} else {
1494
1495
keep_hashes [ctx .num_multi_pack_indexes_before ] =
@@ -1506,7 +1507,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1506
1507
ctx .incremental );
1507
1508
1508
1509
cleanup :
1509
- for (i = 0 ; i < ctx .nr ; i ++ ) {
1510
+ for (size_t i = 0 ; i < ctx .nr ; i ++ ) {
1510
1511
if (ctx .info [i ].p ) {
1511
1512
close_pack (ctx .info [i ].p );
1512
1513
free (ctx .info [i ].p );
@@ -1519,7 +1520,7 @@ static int write_midx_internal(struct repository *r, const char *object_dir,
1519
1520
free (ctx .pack_perm );
1520
1521
free (ctx .pack_order );
1521
1522
if (keep_hashes ) {
1522
- for (i = 0 ; i < ctx .num_multi_pack_indexes_before + 1 ; i ++ )
1523
+ for (uint32_t i = 0 ; i <= ctx .num_multi_pack_indexes_before ; i ++ )
1523
1524
free ((char * )keep_hashes [i ]);
1524
1525
free (keep_hashes );
1525
1526
}
0 commit comments