libnui / nui3

libnui v3
http://libnui.net
Mozilla Public License 2.0
163 stars 31 forks source link

Small safety tweak to ~nuiSimpleContainer #18

Closed Jaydee2190 closed 13 years ago

Jaydee2190 commented 13 years ago

nuiSimpleContainer::~nuiSimpleContainer() { CheckValid(); // Delete all children: IteratorPtr pIt; for (pIt = GetFirstChild(false); pIt && pIt->IsValid(); GetNextChild(pIt)) { nuiWidgetPtr pItem = pIt->GetWidget(); if (pItem) {
pItem->SetParent(NULL); // If the refcount isn't 1 there's a danger of a dangling pointer to parent pItem->Release();

}

} delete pIt; }

Jaydee2190 commented 13 years ago

Make that..

nuiSimpleContainer::~nuiSimpleContainer() { CheckValid(); // Delete all children: IteratorPtr pIt; for (pIt = GetFirstChild(false); pIt && pIt->IsValid(); GetNextChild(pIt)) { nuiWidgetPtr pItem = pIt->GetWidget(); if (pItem) {
if (!pItem->IsTrashed(false)) pItem->SetParent(NULL); pItem->Release();

}

} delete pIt; }

meeloo commented 13 years ago

closed by 9cbc8fba7b197f8a7dc418f8fa85f2b2469596d1 One more down, thanks to Jaydee2190

Jaydee2190 commented 13 years ago

Thank you Sébastien!