@@ -299,16 +299,6 @@ static int graph_read_oid_fanout(const unsigned char *chunk_start,
return 0;
}
-static int graph_read_oid_lookup(const unsigned char *chunk_start,
- size_t chunk_size, void *data)
-{
- struct commit_graph *g = data;
- g->chunk_oid_lookup = chunk_start;
- if (chunk_size / g->hash_len != g->num_commits)
- return error(_("commit-graph OID lookup chunk is the wrong size"));
- return 0;
-}
-
static int graph_read_commit_data(const unsigned char *chunk_start,
size_t chunk_size, void *data)
{
@@ -435,8 +425,10 @@ struct commit_graph *parse_commit_graph(struct repo_settings *s,
error(_("commit-graph required OID fanout chunk missing or corrupted"));
goto free_and_return;
}
- if (read_chunk(cf, GRAPH_CHUNKID_OIDLOOKUP, graph_read_oid_lookup, graph)) {
- error(_("commit-graph required OID lookup chunk missing or corrupted"));
+ if (pair_chunk_expect(cf, GRAPH_CHUNKID_OIDLOOKUP,
+ &graph->chunk_oid_lookup, graph->hash_len,
+ graph->num_commits)) {
+ error(_("commit-graph OID lookup chunk is the wrong size"));
goto free_and_return;
}
if (read_chunk(cf, GRAPH_CHUNKID_DATA, graph_read_commit_data, graph)) {
@@ -545,7 +545,7 @@ test_expect_success 'detect missing OID fanout chunk' '
test_expect_success 'detect missing OID lookup chunk' '
corrupt_graph_and_verify $GRAPH_BYTE_OID_LOOKUP_ID "\0" \
- "commit-graph required OID lookup chunk missing or corrupted"
+ "commit-graph OID lookup chunk is the wrong size"
'
test_expect_success 'detect missing commit data chunk' '
@@ -851,7 +851,6 @@ test_expect_success 'reader notices fanout/lookup table mismatch' '
check_corrupt_chunk OIDF 1020 "FFFFFFFF" &&
cat >expect.err <<-\EOF &&
error: commit-graph OID lookup chunk is the wrong size
- error: commit-graph required OID lookup chunk missing or corrupted
EOF
test_cmp expect.err err
'
The `OIDL` chunk can benefit from the new chunk-format API function described in the previous commit. Convert it to `pair_chunk_expect()` accordingly. While here, clean up some of the duplicate error messages to simplify the output when we are missing or have a corrupt OIDL chunk. Signed-off-by: Taylor Blau <me@ttaylorr.com> --- commit-graph.c | 16 ++++------------ t/t5318-commit-graph.sh | 3 +-- 2 files changed, 5 insertions(+), 14 deletions(-)