patterns: Fixed multiple severe memory leaks
#163 - probably not all yet
This commit is contained in:
parent
e6a08b9c18
commit
9900a51757
@ -188,6 +188,7 @@ namespace hex::lang {
|
||||
|
||||
~ASTNodeVariableDecl() override {
|
||||
delete this->m_type;
|
||||
delete this->m_placementOffset;
|
||||
}
|
||||
|
||||
[[nodiscard]] ASTNode* clone() const override {
|
||||
@ -226,6 +227,7 @@ namespace hex::lang {
|
||||
~ASTNodeArrayVariableDecl() override {
|
||||
delete this->m_type;
|
||||
delete this->m_size;
|
||||
delete this->m_placementOffset;
|
||||
}
|
||||
|
||||
[[nodiscard]] ASTNode* clone() const override {
|
||||
@ -262,6 +264,8 @@ namespace hex::lang {
|
||||
|
||||
~ASTNodePointerVariableDecl() override {
|
||||
delete this->m_type;
|
||||
delete this->m_sizeType;
|
||||
delete this->m_placementOffset;
|
||||
}
|
||||
|
||||
[[nodiscard]] ASTNode* clone() const override {
|
||||
|
@ -217,6 +217,10 @@ namespace hex::lang {
|
||||
this->m_pointedAt->setVariableName("*" + this->m_pointedAt->getVariableName());
|
||||
}
|
||||
|
||||
~PatternDataPointer() override {
|
||||
delete this->m_pointedAt;
|
||||
}
|
||||
|
||||
PatternData* clone() override {
|
||||
return new PatternDataPointer(*this);
|
||||
}
|
||||
@ -453,6 +457,11 @@ namespace hex::lang {
|
||||
this->m_entries.push_back(entry->clone());
|
||||
}
|
||||
|
||||
~PatternDataArray() override {
|
||||
for (const auto &entry : this->m_entries)
|
||||
delete entry;
|
||||
}
|
||||
|
||||
PatternData* clone() override {
|
||||
return new PatternDataArray(*this);
|
||||
}
|
||||
@ -528,6 +537,11 @@ namespace hex::lang {
|
||||
this->m_members.push_back(member->clone());
|
||||
}
|
||||
|
||||
~PatternDataStruct() override {
|
||||
for (const auto &member : this->m_members)
|
||||
delete member;
|
||||
}
|
||||
|
||||
PatternData* clone() override {
|
||||
return new PatternDataStruct(*this);
|
||||
}
|
||||
@ -609,6 +623,11 @@ namespace hex::lang {
|
||||
this->m_members.push_back(member->clone());
|
||||
}
|
||||
|
||||
~PatternDataUnion() override {
|
||||
for (const auto &member : this->m_members)
|
||||
delete member;
|
||||
}
|
||||
|
||||
PatternData* clone() override {
|
||||
return new PatternDataUnion(*this);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user