diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2018-07-16 13:11:36 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@qt.io> | 2018-07-16 12:03:25 +0000 |
commit | 3b5a20dc02bd00032a19c2951bfa940e6d83aca0 (patch) | |
tree | 37489dd3184cd748be48e225e9cfbd2b3370b0e4 /src/xmlpatterns/schema/qxsdschemaparser.cpp | |
parent | df2fb4bbe406ffa080f2ada087822cf74aa2bd81 (diff) | |
download | qtxmlpatterns-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.cpp | 2 |
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"); |