macroprocessor: fix memory leak
parent
5498783e4c
commit
3cdbc65607
|
@ -89,22 +89,22 @@ CONT \\\\
|
||||||
yylloc->step();
|
yylloc->step();
|
||||||
|
|
||||||
// Get variable name
|
// Get variable name
|
||||||
string *modvarname = new string(yytext);
|
string modvarname = string(yytext);
|
||||||
int dblq_idx1 = modvarname->find("include");
|
int dblq_idx1 = modvarname.find("include");
|
||||||
modvarname->erase(0, dblq_idx1 + 7);
|
modvarname.erase(0, dblq_idx1 + 7);
|
||||||
modvarname->erase(0, modvarname->find_first_not_of(" \t"));
|
modvarname.erase(0, modvarname.find_first_not_of(" \t"));
|
||||||
size_t p = modvarname->find_last_not_of(" \t\n\r");
|
size_t p = modvarname.find_last_not_of(" \t\n\r");
|
||||||
if (string::npos != p)
|
if (string::npos != p)
|
||||||
modvarname->erase(p+1);
|
modvarname.erase(p+1);
|
||||||
|
|
||||||
string *filename;
|
string *filename = NULL;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
filename = new string(driver.get_variable(*modvarname)->toString());
|
filename = new string(driver.get_variable(modvarname)->toString());
|
||||||
}
|
}
|
||||||
catch(MacroDriver::UnknownVariable(&e))
|
catch(MacroDriver::UnknownVariable(&e))
|
||||||
{
|
{
|
||||||
driver.error(*yylloc, "Unknown variable: " + *modvarname);
|
driver.error(*yylloc, "Unknown variable: " + modvarname);
|
||||||
}
|
}
|
||||||
create_include_context(filename, yylloc, driver);
|
create_include_context(filename, yylloc, driver);
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
|
|
Loading…
Reference in New Issue