summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2019-12-09 13:35:45 +0200
committerAntti Määttä <antti.maatta@qt.io>2019-12-10 08:48:51 +0200
commit56e145b99add8dfe3c8067322abdbeecab9cf853 (patch)
tree171139f8c1c85fb33a7ae67e45438ae5985f4f4f /src
parent144d7644eca920a44950282848929602d1e79f90 (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.cpp5
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: