@@ -1522,14 +1522,18 @@ static int write_graph_chunk_base(struct hashfile *f,
1522
1522
return 0 ;
1523
1523
}
1524
1524
1525
+ struct chunk_info {
1526
+ uint32_t id ;
1527
+ uint64_t size ;
1528
+ };
1529
+
1525
1530
static int write_commit_graph_file (struct write_commit_graph_context * ctx )
1526
1531
{
1527
1532
uint32_t i ;
1528
1533
int fd ;
1529
1534
struct hashfile * f ;
1530
1535
struct lock_file lk = LOCK_INIT ;
1531
- uint32_t chunk_ids [MAX_NUM_CHUNKS + 1 ];
1532
- uint64_t chunk_sizes [MAX_NUM_CHUNKS + 1 ];
1536
+ struct chunk_info chunks [MAX_NUM_CHUNKS + 1 ];
1533
1537
const unsigned hashsz = the_hash_algo -> rawsz ;
1534
1538
struct strbuf progress_title = STRBUF_INIT ;
1535
1539
int num_chunks = 3 ;
@@ -1573,35 +1577,34 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
1573
1577
f = hashfd (lk .tempfile -> fd , lk .tempfile -> filename .buf );
1574
1578
}
1575
1579
1576
- chunk_ids [0 ] = GRAPH_CHUNKID_OIDFANOUT ;
1577
- chunk_sizes [0 ] = GRAPH_FANOUT_SIZE ;
1578
- chunk_ids [1 ] = GRAPH_CHUNKID_OIDLOOKUP ;
1579
- chunk_sizes [1 ] = hashsz * ctx -> commits .nr ;
1580
- chunk_ids [2 ] = GRAPH_CHUNKID_DATA ;
1581
- chunk_sizes [2 ] = (hashsz + 16 ) * ctx -> commits .nr ;
1582
-
1580
+ chunks [0 ].id = GRAPH_CHUNKID_OIDFANOUT ;
1581
+ chunks [0 ].size = GRAPH_FANOUT_SIZE ;
1582
+ chunks [1 ].id = GRAPH_CHUNKID_OIDLOOKUP ;
1583
+ chunks [1 ].size = hashsz * ctx -> commits .nr ;
1584
+ chunks [2 ].id = GRAPH_CHUNKID_DATA ;
1585
+ chunks [2 ].size = (hashsz + 16 ) * ctx -> commits .nr ;
1583
1586
if (ctx -> num_extra_edges ) {
1584
- chunk_ids [num_chunks ] = GRAPH_CHUNKID_EXTRAEDGES ;
1585
- chunk_sizes [num_chunks ] = 4 * ctx -> num_extra_edges ;
1587
+ chunks [num_chunks ]. id = GRAPH_CHUNKID_EXTRAEDGES ;
1588
+ chunks [num_chunks ]. size = 4 * ctx -> num_extra_edges ;
1586
1589
num_chunks ++ ;
1587
1590
}
1588
1591
if (ctx -> changed_paths ) {
1589
- chunk_ids [num_chunks ] = GRAPH_CHUNKID_BLOOMINDEXES ;
1590
- chunk_sizes [num_chunks ] = sizeof (uint32_t ) * ctx -> commits .nr ;
1592
+ chunks [num_chunks ]. id = GRAPH_CHUNKID_BLOOMINDEXES ;
1593
+ chunks [num_chunks ]. size = sizeof (uint32_t ) * ctx -> commits .nr ;
1591
1594
num_chunks ++ ;
1592
- chunk_ids [num_chunks ] = GRAPH_CHUNKID_BLOOMDATA ;
1593
- chunk_sizes [num_chunks ] = sizeof (uint32_t ) * 3
1595
+ chunks [num_chunks ]. id = GRAPH_CHUNKID_BLOOMDATA ;
1596
+ chunks [num_chunks ]. size = sizeof (uint32_t ) * 3
1594
1597
+ ctx -> total_bloom_filter_data_size ;
1595
1598
num_chunks ++ ;
1596
1599
}
1597
1600
if (ctx -> num_commit_graphs_after > 1 ) {
1598
- chunk_ids [num_chunks ] = GRAPH_CHUNKID_BASE ;
1599
- chunk_sizes [num_chunks ] = hashsz * (ctx -> num_commit_graphs_after - 1 );
1601
+ chunks [num_chunks ]. id = GRAPH_CHUNKID_BASE ;
1602
+ chunks [num_chunks ]. size = hashsz * (ctx -> num_commit_graphs_after - 1 );
1600
1603
num_chunks ++ ;
1601
1604
}
1602
1605
1603
- chunk_ids [num_chunks ] = 0 ;
1604
- chunk_sizes [num_chunks ] = 0 ;
1606
+ chunks [num_chunks ]. id = 0 ;
1607
+ chunks [num_chunks ]. size = 0 ;
1605
1608
1606
1609
hashwrite_be32 (f , GRAPH_SIGNATURE );
1607
1610
@@ -1614,12 +1617,12 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
1614
1617
for (i = 0 ; i <= num_chunks ; i ++ ) {
1615
1618
uint32_t chunk_write [3 ];
1616
1619
1617
- chunk_write [0 ] = htonl (chunk_ids [i ]);
1620
+ chunk_write [0 ] = htonl (chunks [i ]. id );
1618
1621
chunk_write [1 ] = htonl (chunk_offset >> 32 );
1619
1622
chunk_write [2 ] = htonl (chunk_offset & 0xffffffff );
1620
1623
hashwrite (f , chunk_write , 12 );
1621
1624
1622
- chunk_offset += chunk_sizes [i ];
1625
+ chunk_offset += chunks [i ]. size ;
1623
1626
}
1624
1627
1625
1628
if (ctx -> report_progress ) {
0 commit comments