On Tue, Oct 03, 2023 at 04:30:55PM -0400, Jeff King wrote: > diff --git a/commit-graph.c b/commit-graph.c > index 4aa2f294f1..744b7eb1a3 100644 > --- a/commit-graph.c > +++ b/commit-graph.c > @@ -2065,9 +2065,11 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx) > free(graph_name); > } > > + free(ctx->commit_graph_hash_after[ctx->num_commit_graphs_after - 1]); > ctx->commit_graph_hash_after[ctx->num_commit_graphs_after - 1] = xstrdup(hash_to_hex(file_hash)); > final_graph_name = get_split_graph_filename(ctx->odb, > ctx->commit_graph_hash_after[ctx->num_commit_graphs_after - 1]); > + free(ctx->commit_graph_filenames_after[ctx->num_commit_graphs_after - 1]); > ctx->commit_graph_filenames_after[ctx->num_commit_graphs_after - 1] = final_graph_name; > > result = rename(ctx->graph_name, final_graph_name); This hunk makes sense. It might be nice in the future to do something like: --- 8< --- diff --git a/commit-graph.c b/commit-graph.c index 5e8a3a5085..cadccbe276 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -59,7 +59,7 @@ void git_test_write_commit_graph_or_die(void) #define GRAPH_EXTRA_EDGES_NEEDED 0x80000000 #define GRAPH_EDGE_LAST_MASK 0x7fffffff -#define GRAPH_PARENT_NONE 0x70000000 +tdefine GRAPH_PARENT_NONE 0x70000000 #define GRAPH_LAST_EDGE 0x80000000 @@ -1033,11 +1033,11 @@ struct write_commit_graph_context { uint64_t progress_cnt; char *base_graph_name; - int num_commit_graphs_before; - int num_commit_graphs_after; - char **commit_graph_filenames_before; - char **commit_graph_filenames_after; - char **commit_graph_hash_after; + struct { + size_t nr; + char **fname; + char **hash; + } graphs_before, graphs_after; uint32_t new_num_commits_in_base; struct commit_graph *new_base_graph; --- >8 --- ...making the corresponding changes throughout the rest of the file. But that is definitely out of scope here, and could easily be left for another day. #leftoverbits Thanks, Taylor