From 3cdbc65607672884c910469e5a79465dfdb8f76b Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Wed, 25 Feb 2015 09:03:48 +0100 Subject: [PATCH] macroprocessor: fix memory leak --- macro/MacroFlex.ll | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/macro/MacroFlex.ll b/macro/MacroFlex.ll index 3fede037..0b5ff7a2 100644 --- a/macro/MacroFlex.ll +++ b/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);