1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-26 00:03:52 +02:00

TrackList::Remove and TrackListIterator::RemoveCurrent always delete the track

This commit is contained in:
Paul Licameli
2016-03-01 16:28:59 -05:00
parent 4edc960acd
commit bc5519a0e2
7 changed files with 13 additions and 19 deletions

View File

@@ -465,12 +465,12 @@ Track *TrackListIterator::Prev(bool skiplinked)
return *cur;
}
Track *TrackListIterator::RemoveCurrent(bool deletetrack)
Track *TrackListIterator::RemoveCurrent()
{
if (!l || l->isNull(cur))
return nullptr;
cur = l->Remove(*cur, deletetrack);
cur = l->Remove(*cur);
#ifdef DEBUG_TLI // if we are debugging this bit
wxASSERT_MSG((!cur || (*l).Contains((*cur).t)), wxT("cur invalid after deletion of track.")); // check that cur is in the list
@@ -902,16 +902,13 @@ void TrackList::Replace(Track * t, Track * with, bool deletetrack)
}
}
TrackNodePointer TrackList::Remove(Track *t, bool deletetrack)
TrackNodePointer TrackList::Remove(Track *t)
{
TrackNodePointer result(end());
if (t) {
auto node = t->GetNode();
if (deletetrack)
delete t;
else
t->SetOwner(NULL, TrackNodePointer{});
delete t;
if (!isNull(node)) {
result = erase(node);