summaryrefslogtreecommitdiff
path: root/src/xmlpatterns/schema/qxsdschemaparser.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2018-07-16 13:11:36 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2018-07-16 12:03:25 +0000
commit3b5a20dc02bd00032a19c2951bfa940e6d83aca0 (patch)
tree37489dd3184cd748be48e225e9cfbd2b3370b0e4 /src/xmlpatterns/schema/qxsdschemaparser.cpp
parentdf2fb4bbe406ffa080f2ada087822cf74aa2bd81 (diff)
downloadqtxmlpatterns-3b5a20dc02bd00032a19c2951bfa940e6d83aca0.tar.gz
Fix a cyclic reference that resulted in a memory leak
An element in a complex type would refer to its parenty by a QExplicitlySharedDataPointer, resulting in a reference cycle where none of the items woulf reach a zero refcount, resulting in a leak. Task-number: QTBUG-62691 Change-Id: I469c8cb38cc89ed778dac7534690a5d343b4bf25 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/xmlpatterns/schema/qxsdschemaparser.cpp')
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparser.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/xmlpatterns/schema/qxsdschemaparser.cpp b/src/xmlpatterns/schema/qxsdschemaparser.cpp
index 8bbda27..6c4eafe 100644
--- a/src/xmlpatterns/schema/qxsdschemaparser.cpp
+++ b/src/xmlpatterns/schema/qxsdschemaparser.cpp
@@ -4772,7 +4772,7 @@ XsdTerm::Ptr XsdSchemaParser::parseLocalElement(const XsdParticle::Ptr &particle
} else {
element->setScope(XsdElement::Scope::Ptr(new XsdElement::Scope()));
element->scope()->setVariety(XsdElement::Scope::Local);
- element->scope()->setParent(parent);
+ element->scope()->setParent(parent.data());
if (hasAttribute(QString::fromLatin1("name"))) {
const QString elementName = readNameAttribute("element");