merge alloc_graph() into got_commit_graph_open()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
diff --git a/lib/commit_graph.c b/lib/commit_graph.c
index 388504a..93faeeb 100644
--- a/lib/commit_graph.c
+++ b/lib/commit_graph.c
@@ -94,40 +94,6 @@ struct got_commit_graph {
struct got_commit_graph_iter_list iter_list;
};
-static struct got_commit_graph *
-alloc_graph(const char *path)
-{
- struct got_commit_graph *graph;
-
- graph = calloc(1, sizeof(*graph));
- if (graph == NULL)
- return NULL;
-
- graph->path = strdup(path);
- if (graph->path == NULL) {
- free(graph);
- return NULL;
- }
-
- graph->node_ids = got_object_idset_alloc();
- if (graph->node_ids == NULL) {
- free(graph->path);
- free(graph);
- return NULL;
- }
-
- graph->open_branches = got_object_idset_alloc();
- if (graph->open_branches == NULL) {
- got_object_idset_free(graph->node_ids);
- free(graph->path);
- free(graph);
- return NULL;
- }
-
- TAILQ_INIT(&graph->iter_list);
- return graph;
-}
-
static const struct got_error *
detect_changed_path(int *changed, struct got_commit_object *commit,
struct got_object_id *commit_id, const char *path,
@@ -381,10 +347,40 @@ const struct got_error *
got_commit_graph_open(struct got_commit_graph **graph,
const char *path, int first_parent_traversal)
{
- *graph = alloc_graph(path);
+ const struct got_error *err;
+
+ *graph = calloc(1, sizeof(**graph));
if (*graph == NULL)
- return got_error_from_errno("alloc_graph");
+ return got_error_from_errno("calloc");
+
+ (*graph)->path = strdup(path);
+ if ((*graph)->path == NULL) {
+ err = got_error_from_errno("strdup");
+ free(*graph);
+ *graph = NULL;
+ return err;
+ }
+
+ (*graph)->node_ids = got_object_idset_alloc();
+ if ((*graph)->node_ids == NULL) {
+ err = got_error_from_errno("got_object_idset_alloc");
+ free((*graph)->path);
+ free(*graph);
+ *graph = NULL;
+ return NULL;
+ }
+
+ (*graph)->open_branches = got_object_idset_alloc();
+ if ((*graph)->open_branches == NULL) {
+ err = got_error_from_errno("got_object_idset_alloc");
+ got_object_idset_free((*graph)->node_ids);
+ free((*graph)->path);
+ free(*graph);
+ *graph = NULL;
+ return err;
+ }
+ TAILQ_INIT(&(*graph)->iter_list);
if (first_parent_traversal)
(*graph)->flags |= GOT_COMMIT_GRAPH_FIRST_PARENT_TRAVERSAL;