Add additional deletion in VHDL classes' destructors
Delete dynamically allocated objects in ScopeBase, Architecture, ComponentInstatiation, Entity and Package.
This commit is contained in:
parent
a8fae6bbf7
commit
eb98ed9ce2
|
|
@ -32,6 +32,8 @@ Architecture::Architecture(perm_string name, const ScopeBase&ref,
|
|||
|
||||
Architecture::~Architecture()
|
||||
{
|
||||
delete_all(statements_);
|
||||
ScopeBase::cleanup();
|
||||
}
|
||||
|
||||
Architecture::Statement::Statement()
|
||||
|
|
@ -75,6 +77,9 @@ ComponentInstantiation::ComponentInstantiation(perm_string i, perm_string c,
|
|||
|
||||
ComponentInstantiation::~ComponentInstantiation()
|
||||
{
|
||||
for(map<perm_string, Expression*>::iterator it = port_map_.begin()
|
||||
; it != port_map_.end(); ++it)
|
||||
delete it->second;
|
||||
}
|
||||
|
||||
ProcessStatement::ProcessStatement(perm_string iname,
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ ComponentBase::ComponentBase(perm_string name)
|
|||
|
||||
ComponentBase::~ComponentBase()
|
||||
{
|
||||
for(std::vector<InterfacePort*>::iterator it = ports_.begin()
|
||||
; it != ports_.end(); ++it)
|
||||
delete *it;
|
||||
}
|
||||
|
||||
void ComponentBase::set_interface(std::list<InterfacePort*>*ports)
|
||||
|
|
@ -60,6 +63,9 @@ Entity::Entity(perm_string name)
|
|||
|
||||
Entity::~Entity()
|
||||
{
|
||||
for(map<perm_string,Architecture*>::reverse_iterator it = arch_.rbegin()
|
||||
; it != arch_.rend(); ++it)
|
||||
delete it->second;
|
||||
}
|
||||
|
||||
Architecture* Entity::add_architecture(Architecture*that)
|
||||
|
|
|
|||
|
|
@ -26,4 +26,5 @@ Package::Package(perm_string n, const ScopeBase&ref)
|
|||
|
||||
Package::~Package()
|
||||
{
|
||||
ScopeBase::cleanup();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue