commit-graph: add free_commit_graph

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jonathan Tan 2018-07-11 15:42:40 -07:00 коммит произвёл Junio C Hamano
Родитель e5c5ca2729
Коммит c3756d5b7f
3 изменённых файлов: 18 добавлений и 10 удалений

Просмотреть файл

@ -115,6 +115,8 @@ static int graph_read(int argc, const char **argv)
printf(" large_edges"); printf(" large_edges");
printf("\n"); printf("\n");
free_commit_graph(graph);
return 0; return 0;
} }

Просмотреть файл

@ -231,16 +231,8 @@ static int prepare_commit_graph(void)
static void close_commit_graph(void) static void close_commit_graph(void)
{ {
if (!commit_graph) free_commit_graph(commit_graph);
return; commit_graph = NULL;
if (commit_graph->graph_fd >= 0) {
munmap((void *)commit_graph->data, commit_graph->data_len);
commit_graph->data = NULL;
close(commit_graph->graph_fd);
}
FREE_AND_NULL(commit_graph);
} }
static int bsearch_graph(struct commit_graph *g, struct object_id *oid, uint32_t *pos) static int bsearch_graph(struct commit_graph *g, struct object_id *oid, uint32_t *pos)
@ -1033,3 +1025,15 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g)
return verify_commit_graph_error; return verify_commit_graph_error;
} }
void free_commit_graph(struct commit_graph *g)
{
if (!g)
return;
if (g->graph_fd >= 0) {
munmap((void *)g->data, g->data_len);
g->data = NULL;
close(g->graph_fd);
}
free(g);
}

Просмотреть файл

@ -58,4 +58,6 @@ void write_commit_graph(const char *obj_dir,
int verify_commit_graph(struct repository *r, struct commit_graph *g); int verify_commit_graph(struct repository *r, struct commit_graph *g);
void free_commit_graph(struct commit_graph *);
#endif #endif