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>
This commit is contained in:
Johan Herland 2009-10-09 12:22:06 +02:00 коммит произвёл Junio C Hamano
Родитель 8b208f0213
Коммит 27d5756410
2 изменённых файлов: 10 добавлений и 0 удалений

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

@ -105,6 +105,13 @@ static unsigned char *lookup_notes(const unsigned char *commit_sha1)
return hash_map.entries[index].notes_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, void get_commit_notes(const struct commit *commit, struct strbuf *sb,
const char *output_encoding, int flags) const char *output_encoding, int flags)
{ {

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

@ -1,6 +1,9 @@
#ifndef NOTES_H #ifndef NOTES_H
#define 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_SHOW_HEADER 1
#define NOTES_INDENT 2 #define NOTES_INDENT 2