aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Herland <johan@herland.net>2009-10-09 12:22:06 +0200
committerJunio C Hamano <gitster@pobox.com>2009-10-19 19:00:24 -0700
commit27d57564102a98950bf4398daeeb14a15154478f (patch)
tree15fe36c21f7d7efa2addd96eebd7394b28f2bf5b
parent8b208f0213ed349ecb2ab8f7bb6c5072f8011a70 (diff)
downloadgit-27d57564102a98950bf4398daeeb14a15154478f.tar.gz
git-27d57564102a98950bf4398daeeb14a15154478f.tar.xz
Teach notes code to free its internal data structures on request
There's no need to be rude to memory-concious callers... This patch has been improved by the following contributions: - Junio C Hamano: avoid old-style declaration Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--notes.c7
-rw-r--r--notes.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/notes.c b/notes.c
index b7d79e190..a5d888d77 100644
--- a/notes.c
+++ b/notes.c
@@ -105,6 +105,13 @@ static unsigned char *lookup_notes(const unsigned char *commit_sha1)
return hash_map.entries[index].notes_sha1;
}
+void free_notes(void)
+{
+ free(hash_map.entries);
+ memset(&hash_map, 0, sizeof(struct hash_map));
+ initialized = 0;
+}
+
void get_commit_notes(const struct commit *commit, struct strbuf *sb,
const char *output_encoding, int flags)
{
diff --git a/notes.h b/notes.h
index 7f3eed438..a1421e351 100644
--- a/notes.h
+++ b/notes.h
@@ -1,6 +1,9 @@
#ifndef NOTES_H
#define NOTES_H
+/* Free (and de-initialize) the internal notes tree structure */
+void free_notes(void);
+
#define NOTES_SHOW_HEADER 1
#define NOTES_INDENT 2