mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-24 08:10:50 +01:00
[poincare] DynLayout: Do not detach children needing to be deleted
Change-Id: Id46afd541c8090268e7f48f09a07e6cb6240f445
This commit is contained in:
@@ -35,6 +35,8 @@ public:
|
||||
protected:
|
||||
const ExpressionLayout ** m_children;
|
||||
int m_numberOfChildren;
|
||||
private:
|
||||
void removeDetachedChildren();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ void DynamicLayoutHierarchy::mergeChildrenAtIndex(DynamicLayoutHierarchy * eL, i
|
||||
}
|
||||
}
|
||||
addChildrenAtIndex(eL->children(), eL->numberOfChildren(), indexForInsertion, removeEmptyChildren);
|
||||
eL->detachChildren();
|
||||
eL->removeDetachedChildren();
|
||||
delete eL;
|
||||
}
|
||||
|
||||
@@ -160,4 +160,14 @@ void DynamicLayoutHierarchy::removeAndDeleteChildren() {
|
||||
m_numberOfChildren = 0;
|
||||
}
|
||||
|
||||
void DynamicLayoutHierarchy::removeDetachedChildren() {
|
||||
int currentIndex = 0;
|
||||
for (int i = 0; i < m_numberOfChildren; i++) {
|
||||
if (m_children[i] != nullptr && m_children[i]->parent() == this) {
|
||||
m_children[currentIndex++] = m_children[i];
|
||||
}
|
||||
}
|
||||
m_numberOfChildren = currentIndex;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user