Renewed attempt to fix possible dangling pointers.

Task-number: QTCREATORBUG-807
This commit is contained in:
Erik Verbruggen
2010-03-25 18:57:38 +01:00
parent bb14ad68c0
commit 8620678270

View File

@@ -75,8 +75,12 @@ NamespaceBinding::NamespaceBinding(NamespaceBinding *parent)
NamespaceBinding::~NamespaceBinding()
{
qDeleteAll(children);
qDeleteAll(classBindings);
qDeleteAll(QList<NamespaceBinding *>(children));
qDeleteAll(QList<ClassBinding *>(classBindings));
if (parent)
parent->asNamespaceBinding()->children.removeAll(this);
parent = 0;
}
const NameId *NamespaceBinding::name() const
@@ -547,7 +551,14 @@ ClassBinding::ClassBinding(ClassBinding *parentClass)
}
ClassBinding::~ClassBinding()
{ qDeleteAll(children); }
{
qDeleteAll(QList<ClassBinding *>(children));
if (NamespaceBinding *nsBinding = parent->asNamespaceBinding())
nsBinding->classBindings.removeAll(this);
if (ClassBinding *classBinding = parent->asClassBinding())
classBinding->children.removeAll(this);
parent = 0;
}
const Name *ClassBinding::name() const
{