From: Johan Herland Date: Fri, 9 Oct 2009 10:22:06 +0000 (+0200) Subject: Teach notes code to free its internal data structures on request X-Git-Tag: v1.6.6-rc0~21^2~4 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=27d57564102a98950bf4398daeeb14a15154478f;p=git-core%2Fgit.git 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 Signed-off-by: Johan Herland Signed-off-by: Junio C Hamano --- 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