From a429d40f067cdbbd4673c9e88d1fb6f93ac8a7e0 Mon Sep 17 00:00:00 2001 From: seyko Date: Tue, 3 Mar 2015 14:54:46 +0300 Subject: [PATCH] tcc_free(table_ident) in preprocess_new() if table_ident != NULL --- libtcc.c | 1 + tccpp.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libtcc.c b/libtcc.c index e5eefe40..10d23879 100644 --- a/libtcc.c +++ b/libtcc.c @@ -888,6 +888,7 @@ static void tcc_cleanup(void) for(i = 0; i < n; i++) tcc_free(table_ident[i]); tcc_free(table_ident); + table_ident = NULL; /* free sym_pools */ dynarray_reset(&sym_pools, &nb_sym_pools); diff --git a/tccpp.c b/tccpp.c index 82168f72..45e394fa 100644 --- a/tccpp.c +++ b/tccpp.c @@ -3165,7 +3165,10 @@ ST_FUNC void preprocess_new(void) isidnum_table[i-CH_EOF] = isid(i) || isnum(i); /* add all tokens */ - table_ident = NULL; + if (table_ident) { + tcc_free (table_ident); + table_ident = NULL; + } memset(hash_ident, 0, TOK_HASH_SIZE * sizeof(TokenSym *)); tok_ident = TOK_IDENT;