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; } }