diff options
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index 4ddd19e8..b7a37a20 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -723,8 +723,10 @@ void Abstract3DRenderer::updateCustomData(const QList<QCustom3DItem *> &customIt CustomRenderItem *renderItem = m_customRenderCache.value(item); if (!renderItem) renderItem = addCustomItem(item); - renderItem->setValid(true); - renderItem->setIndex(i); // always update index, as it must match the custom item index + if (renderItem) { + renderItem->setValid(true); + renderItem->setIndex(i); // always update index, as it must match the custom item index + } } // Check render item cache and remove items that are not in customItems list anymore @@ -1127,7 +1129,10 @@ CustomRenderItem *Abstract3DRenderer::addCustomItem(QCustom3DItem *item) CustomRenderItem *newItem = new CustomRenderItem(); newItem->setRenderer(this); newItem->setItemPointer(item); // Store pointer for render item updates - newItem->setMesh(item->meshFile()); + if (!newItem->setMesh(item->meshFile())) { + delete newItem; + return nullptr; + } newItem->setOrigPosition(item->position()); newItem->setOrigScaling(item->scaling()); newItem->setScalingAbsolute(item->isScalingAbsolute()); |