From: Fletcher T. Penney Date: Fri, 14 Apr 2017 22:41:16 +0000 (-0400) Subject: FIXED: Improve memory management X-Git-Tag: 6.0.5^2~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ac88efe29e9f537deac81015fdc4ee5d94bd19a8;p=multimarkdown FIXED: Improve memory management --- diff --git a/Sources/libMultiMarkdown/mmd.c b/Sources/libMultiMarkdown/mmd.c index 31e08b5..9eb1653 100644 --- a/Sources/libMultiMarkdown/mmd.c +++ b/Sources/libMultiMarkdown/mmd.c @@ -226,6 +226,9 @@ void mmd_engine_free(mmd_engine * e, bool freeDString) { if (e == NULL) return; + if (e->root) + token_tree_free(e->root); + if (freeDString) d_string_free(e->dstr, true); @@ -1832,12 +1835,12 @@ void strip_line_tokens_from_block(mmd_engine * e, token * block) { /// Parse part of the string into a token tree token * mmd_engine_parse_substring(mmd_engine * e, size_t byte_start, size_t byte_len) { + // First, clean up any leftovers from previous parse + // Free existing parse tree if (e->root) token_tree_free(e->root); - // New parse tree - // Free necessary stacks // Abbreviations need to be freed