From 03532ae3a1bc1b03c4219d80cfc5382d9ca1496c Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Wed, 25 Feb 2015 09:03:48 +0100 Subject: [PATCH] macroprocessor: fix memory leak --- preprocessor/macro/MacroFlex.ll | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/preprocessor/macro/MacroFlex.ll b/preprocessor/macro/MacroFlex.ll index 3fede037e0..0b5ff7a21e 100644 --- a/preprocessor/macro/MacroFlex.ll +++ b/preprocessor/macro/MacroFlex.ll @@ -89,22 +89,22 @@ CONT \\\\ yylloc->step(); // Get variable name - string *modvarname = new string(yytext); - int dblq_idx1 = modvarname->find("include"); - modvarname->erase(0, dblq_idx1 + 7); - modvarname->erase(0, modvarname->find_first_not_of(" \t")); - size_t p = modvarname->find_last_not_of(" \t\n\r"); + string modvarname = string(yytext); + int dblq_idx1 = modvarname.find("include"); + modvarname.erase(0, dblq_idx1 + 7); + modvarname.erase(0, modvarname.find_first_not_of(" \t")); + size_t p = modvarname.find_last_not_of(" \t\n\r"); if (string::npos != p) - modvarname->erase(p+1); + modvarname.erase(p+1); - string *filename; + string *filename = NULL; try { - filename = new string(driver.get_variable(*modvarname)->toString()); + filename = new string(driver.get_variable(modvarname)->toString()); } catch(MacroDriver::UnknownVariable(&e)) { - driver.error(*yylloc, "Unknown variable: " + *modvarname); + driver.error(*yylloc, "Unknown variable: " + modvarname); } create_include_context(filename, yylloc, driver); BEGIN(INITIAL); -- GitLab