diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-15 13:54:33 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-17 12:26:06 +0000 |
commit | 042c380b5885d15925bf66400ebeaa1dc0e7dda0 (patch) | |
tree | 4c5718a1877bf4625932ae01d6bc816e7a6a046b /src/render/materialsystem/effect.cpp | |
parent | 957114bd4d8fa17dfedd1317be01842128f9bbdc (diff) |
Effect: Protect against wrong cast
Change-Id: I0a664ab1a1f2fb324da6b32816511813a79b18fc
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/materialsystem/effect.cpp')
-rw-r--r-- | src/render/materialsystem/effect.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/render/materialsystem/effect.cpp b/src/render/materialsystem/effect.cpp index 66a93132a..f8cdfa87a 100644 --- a/src/render/materialsystem/effect.cpp +++ b/src/render/materialsystem/effect.cpp @@ -93,23 +93,26 @@ void Effect::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &chang void Effect::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { - QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); - QVariant propertyValue = propertyChange->value(); switch (e->type()) { - - case NodeAdded: + case NodeAdded: { + QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); + QVariant propertyValue = propertyChange->value(); if (propertyChange->propertyName() == QByteArrayLiteral("technique")) appendRenderTechnique(propertyValue.value<QNodeId>()); else if (propertyChange->propertyName() == QByteArrayLiteral("parameter")) m_parameterPack.appendParameter(propertyValue.value<QNodeId>()); break; + } - case NodeRemoved: + case NodeRemoved: { + QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); + QVariant propertyValue = propertyChange->value(); if (propertyChange->propertyName() == QByteArrayLiteral("technique")) m_techniques.removeOne(propertyValue.value<QNodeId>()); else if (propertyChange->propertyName() == QByteArrayLiteral("parameter")) m_parameterPack.removeParameter(propertyValue.value<QNodeId>()); break; + } default : break; |