hashcpy(graph->oid.hash, graph->data + graph->data_len - graph->hash_len);
- if (verify_commit_graph_lite(graph))
+ if (verify_commit_graph_lite(graph)) {
+ free(graph);
return NULL;
+ }
return graph;
}
free(oids);
fclose(fp);
+ strbuf_release(&line);
return graph_chain;
}
item->generation = get_be32(commit_data + g->hash_len + 8) >> 2;
}
+static inline void set_commit_tree(struct commit *c, struct tree *t)
+{
+ c->maybe_tree = t;
+}
+
static int fill_commit_in_graph(struct repository *r,
struct commit *item,
struct commit_graph *g, uint32_t pos)
item->object.parsed = 1;
- item->maybe_tree = NULL;
+ set_commit_tree(item, NULL);
date_high = get_be32(commit_data + g->hash_len + 8) & 0x3;
date_low = get_be32(commit_data + g->hash_len + 12);
GRAPH_DATA_WIDTH * (c->graph_pos - g->num_commits_in_base);
hashcpy(oid.hash, commit_data);
- c->maybe_tree = lookup_tree(r, &oid);
+ set_commit_tree(c, lookup_tree(r, &oid));
return c->maybe_tree;
}
}
stop_progress(&ctx->progress);
- strbuf_reset(&progress_title);
+ strbuf_release(&progress_title);
strbuf_release(&packname);
return 0;
num_parents++;
if (num_parents > 2)
- ctx->num_extra_edges += num_parents - 2;
+ ctx->num_extra_edges += num_parents - 1;
}
}
strbuf_addstr(&path, "/info/commit-graphs");
dir = opendir(path.buf);
- if (!dir) {
- strbuf_release(&path);
- return;
- }
+ if (!dir)
+ goto out;
strbuf_addch(&path, '/');
dirnamelen = path.len;
if (!found)
unlink(path.buf);
}
+
+ out:
+ strbuf_release(&path);
}
int write_commit_graph(const char *obj_dir,
hashcpy(cur_oid.hash, g->chunk_oid_lookup + g->hash_len * i);
graph_commit = lookup_commit(r, &cur_oid);
- odb_commit = (struct commit *)create_object(r, cur_oid.hash, alloc_commit_node(r));
+ odb_commit = (struct commit *)create_object(r, &cur_oid, alloc_commit_node(r));
if (parse_commit_internal(odb_commit, 0, 0)) {
graph_report(_("failed to parse commit %s from object database for commit-graph"),
oid_to_hex(&cur_oid));