From: Petr Danecek Date: Sat, 24 Oct 2009 13:43:25 +0000 (+0000) Subject: Added sam_header_line_free call for sam_header_parse2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2081e538f742bd619a60c32cef0465a1ea2680f9;p=samtools.git Added sam_header_line_free call for sam_header_parse2 --- diff --git a/sam_header.c b/sam_header.c index 718bd1d..f97472d 100644 --- a/sam_header.c +++ b/sam_header.c @@ -426,23 +426,27 @@ void print_header_line(FILE *fp, HeaderLine *hline) } +void sam_header_line_free(HeaderLine *hline) +{ + list_t *tags = hline->tags; + while (tags) + { + HeaderTag *tag = tags->data; + free(tag->value); + free(tag); + tags = tags->next; + } + list_free(hline->tags); + free(hline); +} + void sam_header_free(void *_header) { HeaderDict *header = (HeaderDict*)_header; list_t *hlines = header; while (hlines) { - HeaderLine *hline = hlines->data; - list_t *tags = hline->tags; - while (tags) - { - HeaderTag *tag = tags->data; - free(tag->value); - free(tag); - tags = tags->next; - } - list_free(hline->tags); - free(hline); + sam_header_line_free(hlines->data); hlines = hlines->next; } list_free(header); @@ -532,7 +536,9 @@ void *sam_header_parse2(const char *headerText) hlines = list_append(hlines, hline); else { + sam_header_line_free(hline); sam_header_free(hlines); + if ( buf ) free(buf); return NULL; } }