@@ -1522,14 +1522,18 @@ static int write_graph_chunk_base(struct hashfile *f,
15221522 return 0 ;
15231523}
15241524
1525+ struct chunk_info {
1526+ uint32_t id ;
1527+ uint64_t size ;
1528+ };
1529+
15251530static int write_commit_graph_file (struct write_commit_graph_context * ctx )
15261531{
15271532 uint32_t i ;
15281533 int fd ;
15291534 struct hashfile * f ;
15301535 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 ];
15331537 const unsigned hashsz = the_hash_algo -> rawsz ;
15341538 struct strbuf progress_title = STRBUF_INIT ;
15351539 int num_chunks = 3 ;
@@ -1573,35 +1577,34 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
15731577 f = hashfd (lk .tempfile -> fd , lk .tempfile -> filename .buf );
15741578 }
15751579
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 ;
15831586 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 ;
15861589 num_chunks ++ ;
15871590 }
15881591 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 ;
15911594 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
15941597 + ctx -> total_bloom_filter_data_size ;
15951598 num_chunks ++ ;
15961599 }
15971600 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 );
16001603 num_chunks ++ ;
16011604 }
16021605
1603- chunk_ids [num_chunks ] = 0 ;
1604- chunk_sizes [num_chunks ] = 0 ;
1606+ chunks [num_chunks ]. id = 0 ;
1607+ chunks [num_chunks ]. size = 0 ;
16051608
16061609 hashwrite_be32 (f , GRAPH_SIGNATURE );
16071610
@@ -1614,12 +1617,12 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
16141617 for (i = 0 ; i <= num_chunks ; i ++ ) {
16151618 uint32_t chunk_write [3 ];
16161619
1617- chunk_write [0 ] = htonl (chunk_ids [i ]);
1620+ chunk_write [0 ] = htonl (chunks [i ]. id );
16181621 chunk_write [1 ] = htonl (chunk_offset >> 32 );
16191622 chunk_write [2 ] = htonl (chunk_offset & 0xffffffff );
16201623 hashwrite (f , chunk_write , 12 );
16211624
1622- chunk_offset += chunk_sizes [i ];
1625+ chunk_offset += chunks [i ]. size ;
16231626 }
16241627
16251628 if (ctx -> report_progress ) {
0 commit comments