DIFFITEM::~DIFFITEM()
{
RemoveChildren();
- RemoveSiblings();
assert(children == nullptr);
- assert(Flink == nullptr);
- assert(Blink == nullptr);
}
/** @brief Return path to left/right file, including all but file name */
return false;
}
-/** @brief Remove and delete all sibling DIFFITEM entries, via Flink */
-void DIFFITEM::RemoveSiblings()
+/** @brief Remove and delete all children DIFFITEM entries */
+void DIFFITEM::RemoveChildren()
{
- DIFFITEM *pRem = Flink;
+ DIFFITEM *pRem = children;
while (pRem != nullptr)
{
- assert(pRem->parent == parent);
- assert(pRem->Blink == this);
+ assert(pRem->parent == this);
DIFFITEM *pNext = pRem->Flink;
- pRem->DelinkFromSiblings(); // destroys Flink (so we use pNext instead)
delete pRem;
pRem = pNext;
}
- DelinkFromSiblings();
-}
-
-/** @brief Remove and delete all children DIFFITEM entries */
-void DIFFITEM::RemoveChildren()
-{
- delete children;
children = nullptr;
}
if (parent->children == this)
{
parent->children = Flink;
- }
+ }
}
if (Blink != nullptr)
Blink->Flink = Flink;
with the first (oldest) item (pointed to by `this->parent->children`)
pointing to the last (newest) item. This is for easy insertion. */
void AppendSibling(DIFFITEM *p);
- void RemoveSiblings();
public:
void DelinkFromSiblings();