Fix memory leak for HeaderEntity instances:

the getArgumentCount() call in IfcEntityInstanceData destructor isn't virtually dispatched so it returns 0 instead of correct number of arguments => memory leak
added IfcEntityInstanceData::clearArguments() which clears all arguments and resets the attributes_ field to nullptr

Remove unnecessary copy in IfcEntityInstanceData::setArgument() when argument is created at the call site (no more leak of original argument)

Fix memory leak in IfcFile: delete entities from both byid and entity_file_map
This commit is contained in:
Adrien SCHVALBERG
2022-04-28 10:33:54 +02:00
committed by Thomas Krijnen
parent e677355438
commit e5b3455533
4 changed files with 149 additions and 125 deletions
+4
View File
@@ -46,6 +46,10 @@ HeaderEntity::HeaderEntity(const char * const datatype, size_t size, IfcFile* fi
}
}
HeaderEntity::~HeaderEntity()
{
clearArguments();
}
void IfcSpfHeader::readSemicolon() {
if (!TokenFunc::isOperator(file_->tokens->Next(), ';')) {