linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #05315
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2857: better loop when removing ADLS dirs
------------------------------------------------------------
revno: 2857
committer: poy <poy@xxxxxxxxxx>
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);