{
struct commit_graph *g = data;
g->chunk_oid_lookup = chunk_start;
- if (chunk_size / g->hash_len != g->num_commits)
+ if (chunk_size / g->hash_algo->rawsz != g->num_commits)
return error(_("commit-graph OID lookup chunk is the wrong size"));
return 0;
}
graph = alloc_commit_graph();
- graph->hash_len = the_hash_algo->rawsz;
+ graph->hash_algo = the_hash_algo;
graph->num_chunks = *(unsigned char*)(data + 6);
graph->data = graph_map;
graph->data_len = graph_size;
FREE_AND_NULL(graph->bloom_filter_settings);
}
- oidread(&graph->oid, graph->data + graph->data_len - graph->hash_len,
+ oidread(&graph->oid, graph->data + graph->data_len - graph->hash_algo->rawsz,
the_repository->hash_algo);
free_chunkfile(cf);
return 0;
}
- if (g->chunk_base_graphs_size / g->hash_len < n) {
+ if (g->chunk_base_graphs_size / g->hash_algo->rawsz < n) {
warning(_("commit-graph base graphs chunk is too small"));
return 0;
}
if (!cur_g ||
!oideq(&oids[n], &cur_g->oid) ||
- !hasheq(oids[n].hash, g->chunk_base_graphs + st_mult(g->hash_len, n),
+ !hasheq(oids[n].hash, g->chunk_base_graphs + st_mult(g->hash_algo->rawsz, n),
the_repository->hash_algo)) {
warning(_("commit-graph chain does not match"));
return 0;
return 0;
first_generation = get_be32(g->chunk_commit_data +
- g->hash_len + 8) >> 2;
+ g->hash_algo->rawsz + 8) >> 2;
return !!first_generation;
}
static int bsearch_graph(struct commit_graph *g, const struct object_id *oid, uint32_t *pos)
{
return bsearch_hash(oid->hash, g->chunk_oid_fanout,
- g->chunk_oid_lookup, g->hash_len, pos);
+ g->chunk_oid_lookup, g->hash_algo->rawsz, pos);
}
static void load_oid_from_graph(struct commit_graph *g,
lex_index = pos - g->num_commits_in_base;
- oidread(oid, g->chunk_oid_lookup + st_mult(g->hash_len, lex_index),
+ oidread(oid, g->chunk_oid_lookup + st_mult(g->hash_algo->rawsz, lex_index),
the_repository->hash_algo);
}
graph_data = commit_graph_data_at(item);
graph_data->graph_pos = pos;
- date_high = get_be32(commit_data + g->hash_len + 8) & 0x3;
- date_low = get_be32(commit_data + g->hash_len + 12);
+ date_high = get_be32(commit_data + g->hash_algo->rawsz + 8) & 0x3;
+ date_low = get_be32(commit_data + g->hash_algo->rawsz + 12);
item->date = (timestamp_t)((date_high << 32) | date_low);
if (g->read_generation_data) {
} else
graph_data->generation = item->date + offset;
} else
- graph_data->generation = get_be32(commit_data + g->hash_len + 8) >> 2;
+ graph_data->generation = get_be32(commit_data + g->hash_algo->rawsz + 8) >> 2;
if (g->topo_levels)
- *topo_level_slab_at(g->topo_levels, item) = get_be32(commit_data + g->hash_len + 8) >> 2;
+ *topo_level_slab_at(g->topo_levels, item) = get_be32(commit_data + g->hash_algo->rawsz + 8) >> 2;
}
static inline void set_commit_tree(struct commit *c, struct tree *t)
fill_commit_graph_info(item, g, pos);
lex_index = pos - g->num_commits_in_base;
- commit_data = g->chunk_commit_data + st_mult(g->hash_len + 16, lex_index);
+ commit_data = g->chunk_commit_data + st_mult(g->hash_algo->rawsz + 16, lex_index);
item->object.parsed = 1;
pptr = &item->parents;
- edge_value = get_be32(commit_data + g->hash_len);
+ edge_value = get_be32(commit_data + g->hash_algo->rawsz);
if (edge_value == GRAPH_PARENT_NONE)
return 1;
pptr = insert_parent_or_die(r, g, edge_value, pptr);
- edge_value = get_be32(commit_data + g->hash_len + 4);
+ edge_value = get_be32(commit_data + g->hash_algo->rawsz + 4);
if (edge_value == GRAPH_PARENT_NONE)
return 1;
if (!(edge_value & GRAPH_EXTRA_EDGES_NEEDED)) {
struct commit_graph *g = ctx.r->objects->commit_graph;
for (i = 0; i < g->num_commits; i++) {
struct object_id oid;
- oidread(&oid, g->chunk_oid_lookup + st_mult(g->hash_len, i),
+ oidread(&oid, g->chunk_oid_lookup + st_mult(g->hash_algo->rawsz, i),
the_repository->hash_algo);
oid_array_append(&ctx.oids, &oid);
}
for (i = 0; i < g->num_commits; i++) {
struct commit *graph_commit;
- oidread(&cur_oid, g->chunk_oid_lookup + st_mult(g->hash_len, i),
+ oidread(&cur_oid, g->chunk_oid_lookup + st_mult(g->hash_algo->rawsz, i),
the_repository->hash_algo);
if (i && oidcmp(&prev_oid, &cur_oid) >= 0)
timestamp_t generation;
display_progress(progress, ++(*seen));
- oidread(&cur_oid, g->chunk_oid_lookup + st_mult(g->hash_len, i),
+ oidread(&cur_oid, g->chunk_oid_lookup + st_mult(g->hash_algo->rawsz, i),
the_repository->hash_algo);
graph_commit = lookup_commit(r, &cur_oid);