summaryrefslogtreecommitdiff
path: root/alloc.h
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2018-05-15 21:48:42 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-16 02:16:50 (GMT)
commit14ba97f81c7b94e10d591b363688a073023f332d (patch)
treeed3672cff9cc1e0df22baa6c689db4deb06805f3 /alloc.h
parent341e45e46bba094ef1274957ef5891f43e91b344 (diff)
downloadgit-14ba97f81c7b94e10d591b363688a073023f332d.zip
git-14ba97f81c7b94e10d591b363688a073023f332d.tar.gz
git-14ba97f81c7b94e10d591b363688a073023f332d.tar.bz2
alloc: allow arbitrary repositories for alloc functions
We have to convert all of the alloc functions at once, because alloc_report uses a funky macro for reporting. It is better for the sake of mechanical conversion to convert multiple functions at once rather than changing the structure of the reporting function. We record all memory allocation in alloc.c, and free them in clear_alloc_state, which is called for all repositories except the_repository. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'alloc.h')
-rw-r--r--alloc.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/alloc.h b/alloc.h
new file mode 100644
index 0000000..3e4e828
--- /dev/null
+++ b/alloc.h
@@ -0,0 +1,19 @@
+#ifndef ALLOC_H
+#define ALLOC_H
+
+struct tree;
+struct commit;
+struct tag;
+
+void *alloc_blob_node(struct repository *r);
+void *alloc_tree_node(struct repository *r);
+void *alloc_commit_node(struct repository *r);
+void *alloc_tag_node(struct repository *r);
+void *alloc_object_node(struct repository *r);
+void alloc_report(struct repository *r);
+unsigned int alloc_commit_index(struct repository *r);
+
+void *allocate_alloc_state(void);
+void clear_alloc_state(struct alloc_state *s);
+
+#endif