------------------------------------------------------------ revno: 2857 committer: poy <p...@123gen.com> branch nick: trunk timestamp: Sun 2012-02-05 23:56:13 +0100 message: better loop when removing ADLS dirs modified: win32/DirectoryListingFrame.cpp
-- lp:dcplusplus https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk Your team Dcplusplus-team is subscribed to branch lp:dcplusplus. To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'win32/DirectoryListingFrame.cpp' --- win32/DirectoryListingFrame.cpp 2012-02-04 18:32:29 +0000 +++ win32/DirectoryListingFrame.cpp 2012-02-05 22:56:13 +0000 @@ -506,7 +506,7 @@ dl->save(path); // remove previous ADLS matches. - for(auto dir = dirs->getChild(treeRoot); dir; dir = dirs->getNextSibling(dir)) { + for(auto dir = dirs->getChild(treeRoot); dir;) { auto d = dirs->getData(dir)->dir; if(d->getAdls()) { HTREEITEM child; @@ -514,9 +514,12 @@ dirs->erase(child); } dirs->erase(dir); + dir = dirs->getChild(treeRoot); auto& pdirs = d->getParent()->directories; pdirs.erase(std::remove(pdirs.begin(), pdirs.end(), d), pdirs.end()); delete d; + } else { + dir = dirs->getNextSibling(dir); } } ADLSearchManager::getInstance()->matchListing(*dl);
_______________________________________________ Mailing list: https://launchpad.net/~linuxdcpp-team Post to : linuxdcpp-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~linuxdcpp-team More help : https://help.launchpad.net/ListHelp