From 2de6bc82b7c28123062dbdd7c63d7db0959ae1b7 Mon Sep 17 00:00:00 2001 From: IlyaShurupov Date: Tue, 5 Nov 2024 21:28:59 +0300 Subject: [PATCH] fix bug in update manager --- Sketch3D/private/Sketch3D.cpp | 2 +- Widgets/private/managers/UpdateManager.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Sketch3D/private/Sketch3D.cpp b/Sketch3D/private/Sketch3D.cpp index 183036b..f366d47 100644 --- a/Sketch3D/private/Sketch3D.cpp +++ b/Sketch3D/private/Sketch3D.cpp @@ -280,7 +280,7 @@ void PencilBrush::draw(Renderer* render, const Camera* camera) { } PencilBrush::~PencilBrush() { - if (mStroke) delete mStroke; + delete mStroke; } void PencilBrush::finish(Project* proj) { diff --git a/Widgets/private/managers/UpdateManager.cpp b/Widgets/private/managers/UpdateManager.cpp index 5d15414..aeacc42 100644 --- a/Widgets/private/managers/UpdateManager.cpp +++ b/Widgets/private/managers/UpdateManager.cpp @@ -160,8 +160,10 @@ void UpdateManager::processActiveTree(Widget* iter, EventHandler& events, Vec2F procWidget(iter, events, false); } - for (auto child : iter->mDepthOrder) { - processActiveTree(child.data(), events, current); + for (auto child = iter->mDepthOrder.firstNode(); child;) { + auto next = child->next; // any child may be removed at runtime + processActiveTree(child->data, events, current); + child = next; } }