From f1d0c89f832190e2f138be9df6e7dd5a6413c590 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Tue, 9 Jul 2024 14:56:26 +0300 Subject: [PATCH] Fix potential issues with ACCESS_VIOLATION_READ. --- src/app/valentina/xml/vpattern.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index 547e7f52f..0e3ae4eb7 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -4668,15 +4668,19 @@ template auto VPattern::ToolBoundingRect(const QRectF &rec, quint32 QRectF recTool = rec; if (tools.contains(id)) { - const T *vTool = qobject_cast(tools.value(id)); - SCASSERT(vTool != nullptr) + if (const T *vTool = qobject_cast(tools.value(id)); vTool != nullptr) + { + QRectF childrenRect = vTool->childrenBoundingRect(); + // map to scene coordinate. + childrenRect.translate(vTool->scenePos()); - QRectF childrenRect = vTool->childrenBoundingRect(); - // map to scene coordinate. - childrenRect.translate(vTool->scenePos()); - - recTool = recTool.united(vTool->sceneBoundingRect()); - recTool = recTool.united(childrenRect); + recTool = recTool.united(vTool->sceneBoundingRect()); + recTool = recTool.united(childrenRect); + } + else + { + qDebug() << "qobject_cast failed for tool with id=" << id; + } } else {