diff options
author | Antti Määttä <antti.maatta@qt.io> | 2019-12-09 13:35:45 +0200 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2019-12-10 08:48:51 +0200 |
commit | 56e145b99add8dfe3c8067322abdbeecab9cf853 (patch) | |
tree | 171139f8c1c85fb33a7ae67e45438ae5985f4f4f /src | |
parent | 144d7644eca920a44950282848929602d1e79f90 (diff) |
Prevent loading subpresentation multiple times
Task-number: QT3DS-4027
Change-Id: I4612c54e39af44a2458052546f25a1d48a4e0ca4
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/runtime/Qt3DSApplication.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/Qt3DSApplication.cpp b/src/runtime/Qt3DSApplication.cpp index 8d8740d..04065c3 100644 --- a/src/runtime/Qt3DSApplication.cpp +++ b/src/runtime/Qt3DSApplication.cpp @@ -2109,8 +2109,9 @@ struct SXMLLoader : public IAppLoadContext if (!delayedLoading || (m_App.m_OrderedAssets.size() > 1 && initialAssets.size() > 0)) { for (QT3DSU32 idx = 0, end = m_App.m_OrderedAssets.size(); idx < end; ++idx) { QString assetId = QString::fromUtf8(m_App.m_OrderedAssets[idx].first.c_str()); - if (m_App.m_OrderedAssets[idx].first != initialStr - && (initialAssets.contains(assetId) || !delayedLoading)) { + if (!m_App.GetPresentationById(qPrintable(assetId)) + && (m_App.m_OrderedAssets[idx].first != initialStr + && (initialAssets.contains(assetId) || !delayedLoading))) { SAssetValue &theAsset = *m_App.m_OrderedAssets[idx].second; switch (theAsset.getType()) { case AssetValueTypes::Presentation: |