Skip to content
Snippets Groups Projects
Commit 54984991 authored by Jan Trávníček's avatar Jan Trávníček
Browse files

fix all memory leaks

parent f1c33b8e
No related branches found
No related tags found
No related merge requests found
......@@ -16,9 +16,11 @@ Symbol* SymbolFromStringParser::parse() {
return new Symbol(BlankSymbol());
case SymbolFromStringLexer::TokenType::ERROR: {
label::Label* label = m_LabelParser.parse();
if(label != NULL)
return new Symbol(LabeledSymbol(*label));
else
if(label != NULL) {
Symbol* res = new Symbol(LabeledSymbol(std::move(*label)));
delete label;
return res;
} else
return NULL;
}
case SymbolFromStringLexer::TokenType::TEOF:
......@@ -36,6 +38,7 @@ Symbol SymbolFromStringParser::parseSymbol() {
delete symbol;
return std::move(res);
} else {
delete symbol;
throw alib::AlibException();
}
}
......
......@@ -35,6 +35,7 @@ Label LabelFromStringParser::parseLabel() {
delete label;
return std::move(res);
} else {
delete label;
throw alib::AlibException();
}
}
......
......@@ -29,6 +29,7 @@ RegExp RegExpFromStringParser::parseRegexp() {
delete regexp;
return std::move(res);
} else {
delete regexp;
throw alib::AlibException();
}
}
......@@ -144,9 +145,11 @@ RegExpElement* RegExpFromStringParser::factor() {
return this->star(new RegExpEmpty());
} else if(token.type == RegExpFromStringLexer::TokenType::ERROR) {
alphabet::Symbol* symbol = m_SymbolParser.parse();
if(symbol != NULL)
return this->star(new RegExpSymbol(*symbol));
else
if(symbol != NULL) {
RegExpSymbol* res = new RegExpSymbol(std::move(*symbol));
delete symbol;
return this->star(res);
} else
return NULL;
} else {
return NULL;
......
......@@ -47,6 +47,7 @@ String StringFromStringParser::parseString() {
delete string;
return std::move(res);
} else {
delete string;
throw alib::AlibException();
}
}
......@@ -58,7 +59,8 @@ std::vector<alphabet::Symbol> StringFromStringParser::parseContent() {
symbol = m_SymbolParser.parse();
if(symbol == NULL)
return data;
data.push_back(*symbol);
data.push_back(std::move(*symbol));
delete symbol;
} while(true);
}
 
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment