diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
| commit | 72e475dfdeaa4a87dff0eef994e7814e94c40363 (patch) | |
| tree | 94a84e90c14876db223e4a733f651fe0b034f5e9 | |
| parent | c342bde9627b434effbc0cd10b817670d1da0923 (diff) | |
2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Avoid to calculate end() iterator in each loop. std::deque is
particularly slow. Make sure that recalculate end iterator if
element is erased during loop.
81 files changed, 426 insertions, 367 deletions
@@ -1,3 +1,9 @@ +2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid to calculate end() iterator in each loop. std::deque is + particularly slow. Make sure that recalculate end iterator if + element is erased during loop. + 2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> Use vector instead of deque for containers which is used for diff --git a/src/AdaptiveURISelector.cc b/src/AdaptiveURISelector.cc index 32d910b0..0ac807cb 100644 --- a/src/AdaptiveURISelector.cc +++ b/src/AdaptiveURISelector.cc @@ -106,8 +106,8 @@ void AdaptiveURISelector::mayRetryWithIncreasedTimeout(FileEntry* fileEntry) std::mem_fun_ref(&URIResult::getURI)); if(_logger->debug()) { - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { _logger->debug("AdaptiveURISelector: will retry server with increased" " timeout (%d s): %s", _requestGroup->getTimeout(), (*i).c_str()); @@ -257,8 +257,8 @@ std::string AdaptiveURISelector::getMaxDownloadSpeedUri { int max = -1; std::string uri = A2STR::NIL; - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { SharedHandle<ServerStat> ss = getServerStats(*i); if(ss.isNull()) continue; @@ -279,8 +279,8 @@ std::deque<std::string> AdaptiveURISelector::getUrisBySpeed (const std::deque<std::string>& uris, unsigned int min) const { std::deque<std::string> bests; - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { SharedHandle<ServerStat> ss = getServerStats(*i); if(ss.isNull()) continue; @@ -304,8 +304,8 @@ std::string AdaptiveURISelector::selectRandomUri std::string AdaptiveURISelector::getFirstNotTestedUri (const std::deque<std::string>& uris) const { - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { SharedHandle<ServerStat> ss = getServerStats(*i); if(ss.isNull()) return *i; @@ -318,8 +318,8 @@ std::string AdaptiveURISelector::getFirstToTestUri { unsigned int counter; int power; - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { SharedHandle<ServerStat> ss = getServerStats(*i); if(ss.isNull()) continue; @@ -348,8 +348,8 @@ unsigned int AdaptiveURISelector::getNbTestedServers (const std::deque<std::string>& uris) const { unsigned int counter = 0; - for(std::deque<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { SharedHandle<ServerStat> ss = getServerStats(*i); if(ss.isNull()) ++counter; diff --git a/src/AnnounceList.cc b/src/AnnounceList.cc index 3113a83f..e84df292 100644 --- a/src/AnnounceList.cc +++ b/src/AnnounceList.cc @@ -63,15 +63,15 @@ AnnounceList::AnnounceList void AnnounceList::reconfigure(const BDE& announceList) { if(announceList.isList()) { - for(BDE::List::const_iterator itr = announceList.listBegin(); - itr != announceList.listEnd(); ++itr) { + for(BDE::List::const_iterator itr = announceList.listBegin(), + eoi = announceList.listEnd(); itr != eoi; ++itr) { const BDE& elemList = *itr; if(!elemList.isList()) { continue; } std::deque<std::string> urls; - for(BDE::List::const_iterator elemItr = elemList.listBegin(); - elemItr != elemList.listEnd(); ++elemItr) { + for(BDE::List::const_iterator elemItr = elemList.listBegin(), + eoi2 = elemList.listEnd(); elemItr != eoi2; ++elemItr) { const BDE& data = *elemItr; if(data.isString()) { urls.push_back(data.s()); @@ -242,8 +242,8 @@ void AnnounceList::moveToCompletedAllowedTier() { } void AnnounceList::shuffle() { - for(std::deque<SharedHandle<AnnounceTier> >::iterator itr = tiers.begin(); - itr != tiers.end(); ++itr) { + for(std::deque<SharedHandle<AnnounceTier> >::const_iterator itr = + tiers.begin(), eoi = tiers.end(); itr != eoi; ++itr) { std::deque<std::string>& urls = (*itr)->urls; std::random_shuffle(urls.begin(), urls.end(), *(SimpleRandomizer::getInstance().get())); diff --git a/src/BtDependency.cc b/src/BtDependency.cc index ceb13e3a..7ba5ed85 100644 --- a/src/BtDependency.cc +++ b/src/BtDependency.cc @@ -109,17 +109,19 @@ bool BtDependency::resolve() // Copy file path in _dependant's FileEntries to newly created // context's FileEntries to endorse the path structure of // _dependant. URIs and singleHostMultiConnection are also copied. + std::vector<SharedHandle<FileEntry> >::const_iterator ctxFilesEnd = + fileEntries.end(); for(std::vector<SharedHandle<FileEntry> >::const_iterator s = - dependantFileEntries.begin(); s != dependantFileEntries.end(); - ++s){ + dependantFileEntries.begin(), eoi = dependantFileEntries.end(); + s != eoi; ++s){ std::vector<SharedHandle<FileEntry> >::const_iterator d = - context->getFileEntries().begin(); - for(; d != context->getFileEntries().end(); ++d) { + fileEntries.begin(); + for(; d != ctxFilesEnd; ++d) { if((*d)->getOriginalName() == (*s)->getOriginalName()) { break; } } - if(d == context->getFileEntries().end()) { + if(d == ctxFilesEnd) { throw DL_ABORT_EX (StringFormat("No entry %s in torrent file", (*s)->getOriginalName().c_str()).str()); diff --git a/src/BtLeecherStateChoke.cc b/src/BtLeecherStateChoke.cc index 60297f4d..cf1283d1 100644 --- a/src/BtLeecherStateChoke.cc +++ b/src/BtLeecherStateChoke.cc @@ -165,8 +165,8 @@ void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries) if(fastOptUnchoker) { std::random_shuffle(peerIter, peerEntries.end(), *(SimpleRandomizer::getInstance().get())); - for(std::vector<PeerEntry>::iterator i = peerIter; i != peerEntries.end(); - ++i) { + for(std::vector<PeerEntry>::iterator i = peerIter, + eoi = peerEntries.end(); i != eoi; ++i) { if((*i).getPeer()->peerInterested()) { (*i).enableOptUnchoking(); _logger->info("OU: %s", (*i).getPeer()->ipaddr.c_str()); diff --git a/src/BtRegistry.cc b/src/BtRegistry.cc index 2a01a73d..56c727dd 100644 --- a/src/BtRegistry.cc +++ b/src/BtRegistry.cc @@ -54,8 +54,8 @@ SharedHandle<DownloadContext> BtRegistry::getDownloadContext(const std::string& infoHash) const { SharedHandle<DownloadContext> dctx; - for(std::map<int32_t, BtObject>::const_iterator i = _pool.begin(); - i != _pool.end(); ++i) { + for(std::map<int32_t, BtObject>::const_iterator i = _pool.begin(), + eoi = _pool.end(); i != eoi; ++i) { const BDE& attrs = (*i).second._downloadContext->getAttribute(bittorrent::BITTORRENT); if(attrs[bittorrent::INFO_HASH].s() == infoHash) { diff --git a/src/BtRegistry.h b/src/BtRegistry.h index 716fe6a8..b9be7cc2 100644 --- a/src/BtRegistry.h +++ b/src/BtRegistry.h @@ -101,8 +101,8 @@ public: template<typename OutputIterator> OutputIterator getAllDownloadContext(OutputIterator dest) { - for(std::map<int32_t, BtObject>::const_iterator i = _pool.begin(); - i != _pool.end(); ++i) { + for(std::map<int32_t, BtObject>::const_iterator i = _pool.begin(), + eoi = _pool.end(); i != eoi; ++i) { *dest++ = (*i).second._downloadContext; } return dest; diff --git a/src/BtSeederStateChoke.cc b/src/BtSeederStateChoke.cc index d5886339..e1731ae1 100644 --- a/src/BtSeederStateChoke.cc +++ b/src/BtSeederStateChoke.cc @@ -90,7 +90,8 @@ void BtSeederStateChoke::unchoke std::sort(peers.begin(), peers.end()); std::vector<PeerEntry>::iterator r = peers.begin(); - for(; r != peers.end() && count; ++r, --count) { + for(std::vector<PeerEntry>::iterator eoi = peers.end(); + r != eoi && count; ++r, --count) { (*r).getPeer()->chokingRequired(false); _logger->info("RU: %s, ulspd=%u", (*r).getPeer()->ipaddr.c_str(), (*r).getUploadSpeed()); diff --git a/src/BtSetup.cc b/src/BtSetup.cc index d34e7d8b..60be57d7 100644 --- a/src/BtSetup.cc +++ b/src/BtSetup.cc @@ -190,7 +190,7 @@ void BtSetup::setup(std::vector<Command*>& commands, std::vector<std::pair<sockaddr_storage, socklen_t> > ifAddrs; getInterfaceAddress(ifAddrs, lpdInterface, AF_INET, AI_NUMERICHOST); for(std::vector<std::pair<sockaddr_storage, socklen_t> >::const_iterator - i = ifAddrs.begin(); i != ifAddrs.end(); ++i) { + i = ifAddrs.begin(), eoi = ifAddrs.end(); i != eoi; ++i) { sockaddr_in addr; memcpy(&addr, &(*i).first, (*i).second); if(receiver->init(inet_ntoa(addr.sin_addr))) { diff --git a/src/CookieParser.cc b/src/CookieParser.cc index b2b8da89..1933b983 100644 --- a/src/CookieParser.cc +++ b/src/CookieParser.cc @@ -66,8 +66,8 @@ Cookie CookieParser::parse(const std::string& cookieStr, const std::string& defa util::split(nameValue, terms.front(), '='); std::map<std::string, std::string> values; - for(std::vector<std::string>::iterator itr = terms.begin()+1; - itr != terms.end(); ++itr) { + for(std::vector<std::string>::iterator itr = terms.begin()+1, + eoi = terms.end(); itr != eoi; ++itr) { std::pair<std::string, std::string> nv; util::split(nv, *itr, '='); values[nv.first] = nv.second; diff --git a/src/CookieStorage.cc b/src/CookieStorage.cc index 2e584f0b..1e8f8f5f 100644 --- a/src/CookieStorage.cc +++ b/src/CookieStorage.cc @@ -98,8 +98,8 @@ bool CookieStorage::DomainEntry::contains(const Cookie& cookie) const void CookieStorage::DomainEntry::writeCookie(std::ostream& o) const { - for(std::deque<Cookie>::const_iterator i = _cookies.begin(); - i != _cookies.end(); ++i) { + for(std::deque<Cookie>::const_iterator i = _cookies.begin(), + eoi = _cookies.end(); i != eoi; ++i) { o << (*i).toNsCookieFormat() << "\n"; } } @@ -256,7 +256,8 @@ std::vector<Cookie> CookieStorage::criteriaFind(const std::string& requestHost, std::string domain = A2STR::DOT_C; domain += domainComponents[0]; for(std::vector<std::string>::const_iterator di = - domainComponents.begin()+1; di != domainComponents.end(); ++di) { + domainComponents.begin()+1, eoi = domainComponents.end(); + di != eoi; ++di) { domain = strconcat(A2STR::DOT_C, *di, domain); searchCookieByDomainSuffix(domain, _domains.begin(), _domains.end(), std::back_inserter(res), @@ -275,8 +276,8 @@ std::vector<Cookie> CookieStorage::criteriaFind(const std::string& requestHost, size_t CookieStorage::size() const { size_t numCookie = 0; - for(std::deque<DomainEntry>::const_iterator i = _domains.begin(); - i != _domains.end(); ++i) { + for(std::deque<DomainEntry>::const_iterator i = _domains.begin(), + eoi = _domains.end(); i != eoi; ++i) { numCookie += (*i).countCookie(); } return numCookie; @@ -327,8 +328,8 @@ bool CookieStorage::saveNsFormat(const std::string& filename) filename.c_str(), strerror(errno)); return false; } - for(std::deque<DomainEntry>::const_iterator i = _domains.begin(); - i != _domains.end(); ++i) { + for(std::deque<DomainEntry>::const_iterator i = _domains.begin(), + eoi = _domains.end(); i != eoi; ++i) { (*i).writeCookie(o); } o.flush(); diff --git a/src/CookieStorage.h b/src/CookieStorage.h index eaac2bce..8195353f 100644 --- a/src/CookieStorage.h +++ b/src/CookieStorage.h @@ -173,8 +173,8 @@ public: template<typename OutputIterator> OutputIterator dumpCookie(OutputIterator out) const { - for(std::deque<DomainEntry>::const_iterator i = _domains.begin(); - i != _domains.end(); ++i) { + for(std::deque<DomainEntry>::const_iterator i = _domains.begin(), + eoi = _domains.end(); i != eoi; ++i) { out = (*i).dumpCookie(out); } return out; diff --git a/src/DHTAbstractNodeLookupTask.cc b/src/DHTAbstractNodeLookupTask.cc index fd96618a..ace56915 100644 --- a/src/DHTAbstractNodeLookupTask.cc +++ b/src/DHTAbstractNodeLookupTask.cc @@ -33,6 +33,10 @@ */ /* copyright --> */ #include "DHTAbstractNodeLookupTask.h" + +#include <cstring> +#include <algorithm> + #include "DHTRoutingTable.h" #include "DHTMessageDispatcher.h" #include "DHTMessageFactory.h" @@ -44,8 +48,6 @@ #include "Logger.h" #include "util.h" #include "DHTIDCloser.h" -#include <cstring> -#include <algorithm> namespace aria2 { @@ -66,7 +68,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa size_t count = 0; for(std::vector<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = - newEntries.begin(); i != newEntries.end(); ++i) { + newEntries.begin(), eoi = newEntries.end(); i != eoi; ++i) { if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) { _entries.push_front(*i); ++count; @@ -98,7 +100,8 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node) util::toHex(node->getID(), DHT_ID_LENGTH).c_str()); } --_inFlightMessage; - for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = _entries.begin(); i != _entries.end(); ++i) { + for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = + _entries.begin(), eoi = _entries.end(); i != eoi; ++i) { if((*i)->_node == node) { _entries.erase(i); break; @@ -132,8 +135,8 @@ void DHTAbstractNodeLookupTask::sendMessageAndCheckFinish() void DHTAbstractNodeLookupTask::sendMessage() { for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = - _entries.begin(); - i != _entries.end() && _inFlightMessage < ALPHA; ++i) { + _entries.begin(), eoi = _entries.end(); + i != eoi && _inFlightMessage < ALPHA; ++i) { if((*i)->_used == false) { ++_inFlightMessage; (*i)->_used = true; diff --git a/src/DHTAbstractNodeLookupTask.h b/src/DHTAbstractNodeLookupTask.h index 30fbf86c..824b7e0a 100644 --- a/src/DHTAbstractNodeLookupTask.h +++ b/src/DHTAbstractNodeLookupTask.h @@ -61,8 +61,8 @@ protected: void toEntries (Container& entries, const std::vector<SharedHandle<DHTNode> >& nodes) const { - for(std::vector<SharedHandle<DHTNode> >::const_iterator i = nodes.begin(); - i != nodes.end(); ++i) { + for(std::vector<SharedHandle<DHTNode> >::const_iterator i = nodes.begin(), + eoi = nodes.end(); i != eoi; ++i) { SharedHandle<DHTNodeLookupEntry> e(new DHTNodeLookupEntry(*i)); entries.push_back(e); } diff --git a/src/DHTAutoSaveCommand.cc b/src/DHTAutoSaveCommand.cc index f8a5509e..a2453d08 100644 --- a/src/DHTAutoSaveCommand.cc +++ b/src/DHTAutoSaveCommand.cc @@ -101,8 +101,8 @@ void DHTAutoSaveCommand::save() std::vector<SharedHandle<DHTNode> > nodes; std::vector<SharedHandle<DHTBucket> > buckets; _routingTable->getBuckets(buckets); - for(std::vector<SharedHandle<DHTBucket> >::const_iterator i = buckets.begin(); - i != buckets.end(); ++i) { + for(std::vector<SharedHandle<DHTBucket> >::const_iterator i = buckets.begin(), + eoi = buckets.end(); i != eoi; ++i) { const SharedHandle<DHTBucket>& bucket = *i; std::vector<SharedHandle<DHTNode> > goodNodes; bucket->getGoodNodes(goodNodes); diff --git a/src/DHTBucket.cc b/src/DHTBucket.cc index 1b4d52cb..02f9ce3f 100644 --- a/src/DHTBucket.cc +++ b/src/DHTBucket.cc @@ -107,7 +107,8 @@ bool DHTBucket::isInRange(const unsigned char* nodeID, bool DHTBucket::addNode(const SharedHandle<DHTNode>& node) { notifyUpdate(); - std::deque<SharedHandle<DHTNode> >::iterator itr = std::find(_nodes.begin(), _nodes.end(), node); + std::deque<SharedHandle<DHTNode> >::iterator itr = + std::find(_nodes.begin(), _nodes.end(), node); if(itr == _nodes.end()) { if(_nodes.size() < K) { _nodes.push_back(node); @@ -140,7 +141,8 @@ void DHTBucket::cacheNode(const SharedHandle<DHTNode>& node) void DHTBucket::dropNode(const SharedHandle<DHTNode>& node) { if(_cachedNodes.size()) { - std::deque<SharedHandle<DHTNode> >::iterator itr = find(_nodes.begin(), _nodes.end(), node); + std::deque<SharedHandle<DHTNode> >::iterator itr = + find(_nodes.begin(), _nodes.end(), node); if(itr != _nodes.end()) { _nodes.erase(itr); _nodes.push_back(_cachedNodes.front()); @@ -191,8 +193,8 @@ SharedHandle<DHTBucket> DHTBucket::split() rMax, rMin, _localNode)); std::deque<SharedHandle<DHTNode> > lNodes; - for(std::deque<SharedHandle<DHTNode> >::iterator i = _nodes.begin(); - i != _nodes.end(); ++i) { + for(std::deque<SharedHandle<DHTNode> >::iterator i = _nodes.begin(), + eoi = _nodes.end(); i != eoi; ++i) { if(rBucket->isInRange(*i)) { assert(rBucket->addNode(*i)); } else { diff --git a/src/DHTBucketRefreshTask.cc b/src/DHTBucketRefreshTask.cc index c8d520ac..29baec72 100644 --- a/src/DHTBucketRefreshTask.cc +++ b/src/DHTBucketRefreshTask.cc @@ -53,8 +53,8 @@ void DHTBucketRefreshTask::startup() { std::vector<SharedHandle<DHTBucket> > buckets; _routingTable->getBuckets(buckets); - for(std::vector<SharedHandle<DHTBucket> >::iterator i = buckets.begin(); - i != buckets.end(); ++i) { + for(std::vector<SharedHandle<DHTBucket> >::iterator i = buckets.begin(), + eoi = buckets.end(); i != eoi; ++i) { if(_forceRefresh || (*i)->needsRefresh()) { (*i)->notifyUpdate(); unsigned char targetID[DHT_ID_LENGTH]; diff --git a/src/DHTConnectionImpl.cc b/src/DHTConnectionImpl.cc index 7dabdffc..2e27c79d 100644 --- a/src/DHTConnectionImpl.cc +++ b/src/DHTConnectionImpl.cc @@ -57,8 +57,8 @@ bool DHTConnectionImpl::bind(uint16_t& port, IntSequence& ports) std::random_shuffle(randPorts.begin(), randPorts.end(), *SimpleRandomizer::getInstance().get()); - for(std::vector<int32_t>::const_iterator portItr = randPorts.begin(); - portItr != randPorts.end(); ++portItr) { + for(std::vector<int32_t>::const_iterator portItr = randPorts.begin(), + eoi = randPorts.end(); portItr != eoi; ++portItr) { if(!(0 < (*portItr) && (*portItr) <= 65535)) { continue; } diff --git a/src/DHTFindNodeReplyMessage.cc b/src/DHTFindNodeReplyMessage.cc index 269b0a62..387024f7 100644 --- a/src/DHTFindNodeReplyMessage.cc +++ b/src/DHTFindNodeReplyMessage.cc @@ -61,8 +61,8 @@ DHTFindNodeReplyMessage::~DHTFindNodeReplyMessage() {} void DHTFindNodeReplyMessage::doReceivedAction() { - for(std::vector<SharedHandle<DHTNode> >::iterator i = _closestKNodes.begin(); - i != _closestKNodes.end(); ++i) { + for(std::vector<SharedHandle<DHTNode> >::iterator i = _closestKNodes.begin(), + eoi = _closestKNodes.end(); i != eoi; ++i) { if(memcmp((*i)->getID(), _localNode->getID(), DHT_ID_LENGTH) != 0) { _routingTable->addNode(*i); } @@ -77,8 +77,8 @@ BDE DHTFindNodeReplyMessage::getResponse() unsigned char buffer[DHTBucket::K*26]; // TODO if _closestKNodes.size() > DHTBucket::K ?? for(std::vector<SharedHandle<DHTNode> >::const_iterator i = - _closestKNodes.begin(); - i != _closestKNodes.end() && offset < DHTBucket::K*26; ++i) { + _closestKNodes.begin(), eoi = _closestKNodes.end(); + i != eoi && offset < DHTBucket::K*26; ++i) { SharedHandle<DHTNode> node = *i; memcpy(buffer+offset, node->getID(), DHT_ID_LENGTH); if(bittorrent::createcompact(buffer+20+offset, node->getIPAddress(), diff --git a/src/DHTGetPeersReplyMessage.cc b/src/DHTGetPeersReplyMessage.cc index 3b7f72c2..670f3433 100644 --- a/src/DHTGetPeersReplyMessage.cc +++ b/src/DHTGetPeersReplyMessage.cc @@ -82,8 +82,8 @@ BDE DHTGetPeersReplyMessage::getResponse() size_t offset = 0; unsigned char buffer[DHTBucket::K*26]; for(std::vector<SharedHandle<DHTNode> >::const_iterator i = - _closestKNodes.begin(); - i != _closestKNodes.end() && offset < DHTBucket::K*26; ++i) { + _closestKNodes.begin(), eoi = _closestKNodes.end(); + i != eoi && offset < DHTBucket::K*26; ++i) { SharedHandle<DHTNode> node = *i; memcpy(buffer+offset, node->getID(), DHT_ID_LENGTH); if(bittorrent::createcompact @@ -114,8 +114,9 @@ BDE DHTGetPeersReplyMessage::getResponse() // number of peer info that a message can carry. static const size_t MAX_VALUES_SIZE = 100; BDE valuesList = BDE::list(); - for(std::vector<SharedHandle<Peer> >::const_iterator i = _values.begin(); - i != _values.end() && valuesList.size() < MAX_VALUES_SIZE; ++i) { + for(std::vector<SharedHandle<Peer> >::const_iterator i = _values.begin(), + eoi = _values.end(); i != eoi && valuesList.size() < MAX_VALUES_SIZE; + ++i) { const SharedHandle<Peer>& peer = *i; unsigned char buffer[6]; if(bittorrent::createcompact(buffer, peer->ipaddr, peer->port)) { diff --git a/src/DHTMessageFactoryImpl.cc b/src/DHTMessageFactoryImpl.cc index cd0eb8e0..e498aeb1 100644 --- a/src/DHTMessageFactoryImpl.cc +++ b/src/DHTMessageFactoryImpl.cc @@ -416,8 +416,8 @@ DHTMessageFactoryImpl::createGetPeersReplyMessageWithValues const BDE& valuesList = getList(rDict, DHTGetPeersReplyMessage::VALUES); std::vector<SharedHandle<Peer> > peers; - for(BDE::List::const_iterator i = valuesList.listBegin(); - i != valuesList.listEnd(); ++i) { + for(BDE::List::const_iterator i = valuesList.listBegin(), + eoi = valuesList.listEnd(); i != eoi; ++i) { const BDE& data = *i; if(data.isString() && data.s().size() == 6) { std::pair<std::string, uint16_t> addr = diff --git a/src/DHTMessageTracker.cc b/src/DHTMessageTracker.cc index 2f84c1a0..970ddf0e 100644 --- a/src/DHTMessageTracker.cc +++ b/src/DHTMessageTracker.cc @@ -82,7 +82,7 @@ DHTMessageTracker::messageArrived(const BDE& dict, util::toHex(tid.s()).c_str(), ipaddr.c_str(), port); } for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i = - _entries.begin(); i != _entries.end(); ++i) { + _entries.begin(), eoi = _entries.end(); i != eoi; ++i) { if((*i)->match(tid.s(), ipaddr, port)) { SharedHandle<DHTMessageTrackerEntry> entry = *i; _entries.erase(i); @@ -113,12 +113,13 @@ DHTMessageTracker::messageArrived(const BDE& dict, void DHTMessageTracker::handleTimeout() { - for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i = _entries.begin(); - i != _entries.end();) { + for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i = + _entries.begin(), eoi = _entries.end(); i != eoi;) { if((*i)->isTimeout()) { try { SharedHandle<DHTMessageTrackerEntry> entry = *i; i = _entries.erase(i); + eoi = _entries.end(); SharedHandle<DHTNode> node = entry->getTargetNode(); if(_logger->debug()) { _logger->debug("Message timeout: To:%s:%u", @@ -149,9 +150,11 @@ void DHTMessageTracker::handleTimeout() SharedHandle<DHTMessageTrackerEntry> DHTMessageTracker::getEntryFor(const SharedHandle<DHTMessage>& message) const { - for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::const_iterator i = _entries.begin(); - i != _entries.end(); ++i) { - if((*i)->match(message->getTransactionID(), message->getRemoteNode()->getIPAddress(), message->getRemoteNode()->getPort())) { + for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::const_iterator i = + _entries.begin(), eoi = _entries.end(); i != eoi; ++i) { + if((*i)->match(message->getTransactionID(), + message->getRemoteNode()->getIPAddress(), + message->getRemoteNode()->getPort())) { return *i; } } diff --git a/src/DHTPeerAnnounceEntry.cc b/src/DHTPeerAnnounceEntry.cc index 6620c05b..e2ed666f 100644 --- a/src/DHTPeerAnnounceEntry.cc +++ b/src/DHTPeerAnnounceEntry.cc @@ -95,8 +95,8 @@ bool DHTPeerAnnounceEntry::empty() const void DHTPeerAnnounceEntry::getPeers (std::vector<SharedHandle<Peer> >& peers) const { - for(std::vector<PeerAddrEntry>::const_iterator i = _peerAddrEntries.begin(); - i != _peerAddrEntries.end(); ++i) { + for(std::vector<PeerAddrEntry>::const_iterator i = _peerAddrEntries.begin(), + eoi = _peerAddrEntries.end(); i != eoi; ++i) { SharedHandle<Peer> peer(new Peer((*i).getIPAddress(), (*i).getPort())); peers.push_back(peer); } diff --git a/src/DHTPeerAnnounceStorage.cc b/src/DHTPeerAnnounceStorage.cc index b6390c44..11a2dca1 100644 --- a/src/DHTPeerAnnounceStorage.cc +++ b/src/DHTPeerAnnounceStorage.cc @@ -145,10 +145,12 @@ void DHTPeerAnnounceStorage::announcePeer() if(_logger->debug()) { _logger->debug("Now announcing peer."); } - for(std::deque<SharedHandle<DHTPeerAnnounceEntry> >::iterator i = _entries.begin(); i != _entries.end(); ++i) { + for(std::deque<SharedHandle<DHTPeerAnnounceEntry> >::iterator i = + _entries.begin(), eoi = _entries.end(); i != eoi; ++i) { if((*i)->getLastUpdated().elapsed(DHT_PEER_ANNOUNCE_INTERVAL)) { (*i)->notifyUpdate(); - SharedHandle<DHTTask> task = _taskFactory->createPeerAnnounceTask((*i)->getInfoHash()); + SharedHandle<DHTTask> task = + _taskFactory->createPeerAnnounceTask((*i)->getInfoHash()); _taskQueue->addPeriodicTask2(task); if(_logger->debug()) { _logger->debug("Added 1 peer announce: infoHash=%s", diff --git a/src/DHTPeerLookupTask.cc b/src/DHTPeerLookupTask.cc index c7064bad..946915a9 100644 --- a/src/DHTPeerLookupTask.cc +++ b/src/DHTPeerLookupTask.cc @@ -89,8 +89,9 @@ void DHTPeerLookupTask::onFinish() { // send announce_peer message to K closest nodes size_t num = DHTBucket::K; - for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = _entries.begin(); - i != _entries.end() && num > 0; ++i, --num) { + for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = + _entries.begin(), eoi = _entries.end(); i != eoi && num > 0; ++i, + --num) { if((*i)->_used) { const SharedHandle<DHTNode>& node = (*i)->_node; SharedHandle<DHTMessage> m = diff --git a/src/DHTRoutingTableSerializer.cc b/src/DHTRoutingTableSerializer.cc index fcd569ce..dfdee303 100644 --- a/src/DHTRoutingTableSerializer.cc +++ b/src/DHTRoutingTableSerializer.cc @@ -101,8 +101,8 @@ void DHTRoutingTableSerializer::serialize(std::ostream& o) o.write(zero, 4); // nodes - for(std::vector<SharedHandle<DHTNode> >::const_iterator i = _nodes.begin(); - i != _nodes.end(); ++i) { + for(std::vector<SharedHandle<DHTNode> >::const_iterator i = _nodes.begin(), + eoi = _nodes.end(); i != eoi; ++i) { const SharedHandle<DHTNode>& node = *i; // Currently, only IPv4 address and IPv4-mapped address are saved. // 6bytes: write IP address + port in Compact IP-address/port info form. diff --git a/src/DHTSetup.cc b/src/DHTSetup.cc index 038c4d92..8799e69f 100644 --- a/src/DHTSetup.cc +++ b/src/DHTSetup.cc @@ -182,7 +182,7 @@ void DHTSetup::setup(std::vector<Command*>& commands, const std::vector<SharedHandle<DHTNode> >& desnodes = deserializer.getNodes(); for(std::vector<SharedHandle<DHTNode> >::const_iterator i = - desnodes.begin(); i != desnodes.end(); ++i) { + desnodes.begin(), eoi = desnodes.end(); i != eoi; ++i) { routingTable->addNode(*i); } if(!desnodes.empty() && deserializer.getSerializedTime().elapsed(DHT_BUCKET_REFRESH_INTERVAL)) { diff --git a/src/DNSCache.h b/src/DNSCache.h index da6dfa45..66459075 100644 --- a/src/DNSCache.h +++ b/src/DNSCache.h @@ -71,8 +71,8 @@ private: std::vector<AddrEntry>::iterator find(const std::string& addr) { - for(std::vector<AddrEntry>::iterator i = _addrEntries.begin(); - i != _addrEntries.end(); ++i) { + for(std::vector<AddrEntry>::iterator i = _addrEntries.begin(), + eoi = _addrEntries.end(); i != eoi; ++i) { if((*i)._addr == addr) { return i; } @@ -82,8 +82,8 @@ private: std::vector<AddrEntry>::const_iterator find(const std::string& addr) const { - for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(); - i != _addrEntries.end(); ++i) { + for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(), + eoi = _addrEntries.end(); i != eoi; ++i) { if((*i)._addr == addr) { return i; } @@ -98,8 +98,8 @@ private: const std::string& getGoodAddr() const { - for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(); - i != _addrEntries.end(); ++i) { + for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(), + eoi = _addrEntries.end(); i != eoi; ++i) { if((*i)._good) { return (*i)._addr; } @@ -110,8 +110,8 @@ private: template<typename OutputIterator> void getAllGoodAddrs(OutputIterator out) const { - for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(); - i != _addrEntries.end(); ++i) { + for(std::vector<AddrEntry>::const_iterator i = _addrEntries.begin(), + eoi = _addrEntries.end(); i != eoi; ++i) { if((*i)._good) { *out++ = (*i)._addr; } diff --git a/src/DefaultBtInteractive.cc b/src/DefaultBtInteractive.cc index 6de0ea4f..97ca785c 100644 --- a/src/DefaultBtInteractive.cc +++ b/src/DefaultBtInteractive.cc @@ -206,8 +206,8 @@ void DefaultBtInteractive::addAllowedFastMessageToQueue() { _downloadContext->getNumPieces(), bittorrent::getInfoHash(_downloadContext), allowedFastSetSize); - for(std::vector<size_t>::const_iterator itr = fastSet.begin(); - itr != fastSet.end(); ++itr) { + for(std::vector<size_t>::const_iterator itr = fastSet.begin(), + eoi = fastSet.end(); itr != eoi; ++itr) { dispatcher->addMessageToQueue (messageFactory->createAllowedFastMessage(*itr)); } @@ -237,8 +237,8 @@ void DefaultBtInteractive::checkHave() { dispatcher->addMessageToQueue(messageFactory->createBitfieldMessage()); } } else { - for(std::vector<size_t>::iterator itr = indexes.begin(); - itr != indexes.end(); ++itr) { + for(std::vector<size_t>::const_iterator itr = indexes.begin(), + eoi = indexes.end(); itr != eoi; ++itr) { dispatcher->addMessageToQueue(messageFactory->createHaveMessage(*itr)); } } @@ -380,8 +380,8 @@ void DefaultBtInteractive::cancelAllPiece() { if(_metadataGetMode && _downloadContext->getTotalLength() > 0) { std::vector<size_t> metadataRequests = _utMetadataRequestTracker->getAllTrackedIndex(); - for(std::vector<size_t>::const_iterator i = metadataRequests.begin(); - i != metadataRequests.end(); ++i) { + for(std::vector<size_t>::const_iterator i = metadataRequests.begin(), + eoi = metadataRequests.end(); i != eoi; ++i) { if(logger->debug()) { logger->debug("Cancel metadata: piece=%lu", static_cast<unsigned long>(*i)); @@ -441,7 +441,8 @@ void DefaultBtInteractive::addPeerExchangeMessage() const std::deque<SharedHandle<Peer> >& peers = _peerStorage->getPeers(); { for(std::deque<SharedHandle<Peer> >::const_iterator i = - peers.begin(); i != peers.end() && !m->freshPeersAreFull(); ++i) { + peers.begin(), eoi = peers.end(); + i != eoi && !m->freshPeersAreFull(); ++i) { if(peer->ipaddr != (*i)->ipaddr) { m->addFreshPeer(*i); } @@ -449,7 +450,8 @@ void DefaultBtInteractive::addPeerExchangeMessage() } { for(std::deque<SharedHandle<Peer> >::const_reverse_iterator i = - peers.rbegin(); i != peers.rend() && !m->droppedPeersAreFull(); + peers.rbegin(), eoi = peers.rend(); + i != eoi && !m->droppedPeersAreFull(); ++i) { if(peer->ipaddr != (*i)->ipaddr) { m->addDroppedPeer(*i); @@ -485,8 +487,8 @@ void DefaultBtInteractive::doInteractionProcessing() { // to other connection to request piece. std::vector<size_t> indexes = _utMetadataRequestTracker->removeTimeoutEntry(); - for(std::vector<size_t>::const_iterator i = indexes.begin(); - i != indexes.end(); ++i) { + for(std::vector<size_t>::const_iterator i = indexes.begin(), + eoi = indexes.end(); i != eoi; ++i) { _pieceStorage->cancelPiece(_pieceStorage->getPiece(*i)); } } diff --git a/src/DefaultBtMessageDispatcher.cc b/src/DefaultBtMessageDispatcher.cc index 58aff2bd..7c3cb8ca 100644 --- a/src/DefaultBtMessageDispatcher.cc +++ b/src/DefaultBtMessageDispatcher.cc @@ -79,7 +79,7 @@ void DefaultBtMessageDispatcher::addMessageToQueue (const std::vector<SharedHandle<BtMessage> >& btMessages) { for(std::vector<SharedHandle<BtMessage> >::const_iterator itr = - btMessages.begin(); itr != btMessages.end(); ++itr) { + btMessages.begin(), eoi = btMessages.end(); itr != eoi; ++itr) { addMessageToQueue(*itr); } } diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc index ca872546..c439c944 100644 --- a/src/DefaultBtProgressInfoFile.cc +++ b/src/DefaultBtProgressInfoFile.cc @@ -182,8 +182,8 @@ void DefaultBtProgressInfoFile::save() std::vector<SharedHandle<Piece> > inFlightPieces; _pieceStorage->getInFlightPieces(inFlightPieces); for(std::vector<SharedHandle<Piece> >::const_iterator itr = - inFlightPieces.begin(); - itr != inFlightPieces.end(); ++itr) { + inFlightPieces.begin(), eoi = inFlightPieces.end(); + itr != eoi; ++itr) { uint32_t indexNL = htonl((*itr)->getIndex()); o.write(reinterpret_cast<const char*>(&indexNL), sizeof(indexNL)); uint32_t lengthNL = htonl((*itr)->getLength()); diff --git a/src/DefaultBtRequestFactory.cc b/src/DefaultBtRequestFactory.cc index e2285380..42b51b53 100644 --- a/src/DefaultBtRequestFactory.cc +++ b/src/DefaultBtRequestFactory.cc @@ -142,8 +142,8 @@ void DefaultBtRequestFactory::doChokedAction() } void DefaultBtRequestFactory::removeAllTargetPiece() { - for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(); - itr != pieces.end(); ++itr) { + for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(), + eoi = pieces.end(); itr != eoi; ++itr) { dispatcher->doAbortOutstandingRequestAction(*itr); _pieceStorage->cancelPiece(*itr); } @@ -159,13 +159,13 @@ void DefaultBtRequestFactory::createRequestMessages size_t getnum = max-requests.size(); std::vector<size_t> blockIndexes; blockIndexes.reserve(getnum); - for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(); - itr != pieces.end() && getnum; ++itr) { + for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(), + eoi = pieces.end(); itr != eoi && getnum; ++itr) { SharedHandle<Piece>& piece = *itr; if(piece->getMissingUnusedBlockIndex(blockIndexes, getnum)) { getnum -= blockIndexes.size(); - for(std::vector<size_t>::const_iterator i = blockIndexes.begin(); - i != blockIndexes.end(); ++i) { + for(std::vector<size_t>::const_iterator i = blockIndexes.begin(), + eoi2 = blockIndexes.end(); i != eoi2; ++i) { if(_logger->debug()) { _logger->debug("Creating RequestMessage index=%u, begin=%u," " blockIndex=%u", @@ -184,8 +184,8 @@ void DefaultBtRequestFactory::createRequestMessages void DefaultBtRequestFactory::createRequestMessagesOnEndGame (std::vector<SharedHandle<BtMessage> >& requests, size_t max) { - for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(); - itr != pieces.end() && requests.size() < max; ++itr) { + for(std::deque<SharedHandle<Piece> >::iterator itr = pieces.begin(), + eoi = pieces.end(); itr != eoi && requests.size() < max; ++itr) { SharedHandle<Piece>& piece = *itr; const size_t mislen = piece->getBitfieldLength(); array_ptr<unsigned char> misbitfield(new unsigned char[mislen]); @@ -205,8 +205,9 @@ void DefaultBtRequestFactory::createRequestMessagesOnEndGame } std::random_shuffle(missingBlockIndexes.begin(), missingBlockIndexes.end(), *(SimpleRandomizer::getInstance().get())); - for(std::vector<size_t>::const_iterator bitr = missingBlockIndexes.begin(); - bitr != missingBlockIndexes.end() && requests.size() < max; bitr++) { + for(std::vector<size_t>::const_iterator bitr = missingBlockIndexes.begin(), + eoi2 = missingBlockIndexes.end(); + bitr != eoi2 && requests.size() < max; ++bitr) { const size_t& blockIndex = *bitr; if(!dispatcher->isOutstandingRequest(piece->getIndex(), blockIndex)) { diff --git a/src/DefaultPeerStorage.cc b/src/DefaultPeerStorage.cc index fc1a3314..2cced586 100644 --- a/src/DefaultPeerStorage.cc +++ b/src/DefaultPeerStorage.cc @@ -112,8 +112,8 @@ bool DefaultPeerStorage::addPeer(const SharedHandle<Peer>& peer) { void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers) { - for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(); - itr != peers.end(); ++itr) { + for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(), + eoi = peers.end(); itr != eoi; ++itr) { const SharedHandle<Peer>& peer = *itr; if(addPeer(peer)) { if(logger->debug()) { @@ -224,7 +224,7 @@ TransferStat DefaultPeerStorage::calculateStat() struct timeval now; gettimeofday(&now, 0); for(std::vector<SharedHandle<Peer> >::const_iterator i = - activePeers.begin(); i != activePeers.end(); ++i) { + activePeers.begin(), eoi = activePeers.end(); i != eoi; ++i) { TransferStat s; s.downloadSpeed = (*i)->calculateDownloadSpeed(now); s.uploadSpeed = (*i)->calculateUploadSpeed(now); @@ -267,8 +267,8 @@ TransferStat DefaultPeerStorage::getTransferStatFor void DefaultPeerStorage::deleteUnusedPeer(size_t delSize) { std::deque<SharedHandle<Peer> > temp; - for(std::deque<SharedHandle<Peer> >::reverse_iterator itr = peers.rbegin(); - itr != peers.rend(); ++itr) { + for(std::deque<SharedHandle<Peer> >::const_reverse_iterator itr = + peers.rbegin(), eoi = peers.rend(); itr != eoi; ++itr) { const SharedHandle<Peer>& p = *itr; if(p->unused() && delSize > 0) { onErasingPeer(p); diff --git a/src/DefaultPieceStorage.cc b/src/DefaultPieceStorage.cc index b141528f..9be1b0b6 100644 --- a/src/DefaultPieceStorage.cc +++ b/src/DefaultPieceStorage.cc @@ -206,8 +206,8 @@ void DefaultPieceStorage::createFastIndexBitfield (BitfieldMan& bitfield, const SharedHandle<Peer>& peer) { for(std::vector<size_t>::const_iterator itr = - peer->getPeerAllowedIndexSet().begin(); - itr != peer->getPeerAllowedIndexSet().end(); ++itr) { + peer->getPeerAllowedIndexSet().begin(), + eoi = peer->getPeerAllowedIndexSet().end(); itr != eoi; ++itr) { if(!bitfieldMan->isBitSet(*itr) && peer->hasPiece(*itr)) { bitfield.setBit(*itr); } @@ -429,7 +429,8 @@ void DefaultPieceStorage::setupFileFilter() downloadContext->getFileEntries(); bool allSelected = true; for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + fileEntries.begin(), eoi = fileEntries.end(); + i != eoi; ++i) { if(!(*i)->isRequested()) { allSelected = false; break; @@ -439,7 +440,7 @@ void DefaultPieceStorage::setupFileFilter() return; } for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { if((*i)->isRequested()) { bitfieldMan->addFilter((*i)->getOffset(), (*i)->getLength()); } @@ -544,8 +545,8 @@ DefaultPieceStorage::getAdvertisedPieceIndexes(std::vector<size_t>& indexes, int32_t myCuid, const Time& lastCheckTime) { - for(std::deque<HaveEntry>::const_iterator itr = haves.begin(); - itr != haves.end(); ++itr) { + for(std::deque<HaveEntry>::const_iterator itr = haves.begin(), + eoi = haves.end(); itr != eoi; ++itr) { const HaveEntry& have = *itr; if(have.getCuid() == myCuid) { continue; diff --git a/src/DownloadContext.cc b/src/DownloadContext.cc index 21fc6b1d..ca027572 100644 --- a/src/DownloadContext.cc +++ b/src/DownloadContext.cc @@ -129,7 +129,8 @@ void DownloadContext::setFileFilter(IntSequence seq) int32_t index = 1; for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - _fileEntries.begin(); i != _fileEntries.end(); ++i, ++index) { + _fileEntries.begin(), eoi = _fileEntries.end(); + i != eoi; ++i, ++index) { (*i)->setRequested (selectAll || std::binary_search(fileIndexes.begin(), fileIndexes.end(), index)); @@ -171,7 +172,7 @@ bool DownloadContext::hasAttribute(const std::string& key) const void DownloadContext::releaseRuntimeResource() { for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - _fileEntries.begin(); i != _fileEntries.end(); ++i) { + _fileEntries.begin(), eoi = _fileEntries.end(); i != eoi; ++i) { (*i)->releaseRuntimeResource(); } } diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc index 57db8d0a..c9f042c3 100644 --- a/src/DownloadEngine.cc +++ b/src/DownloadEngine.cc @@ -282,7 +282,7 @@ void DownloadEngine::poolSocket(const std::string& ipaddr, } _lastSocketPoolScan.reset(); for(std::multimap<std::string, SocketPoolEntry>::iterator i = - _socketPool.begin(); i != _socketPool.end(); ++i) { + _socketPool.begin(), eoi = _socketPool.end(); i != eoi; ++i) { if(!(*i).second.isTimeout()) { newPool.insert(*i); } @@ -357,8 +357,8 @@ DownloadEngine::findSocketPoolEntry(const std::string& ipaddr, uint16_t port) std::pair<std::multimap<std::string, SocketPoolEntry>::iterator, std::multimap<std::string, SocketPoolEntry>::iterator> range = _socketPool.equal_range(addr); - for(std::multimap<std::string, SocketPoolEntry>::iterator i = range.first; - i != range.second; ++i) { + for(std::multimap<std::string, SocketPoolEntry>::iterator i = + range.first, eoi = range.second; i != eoi; ++i) { const SocketPoolEntry& e = (*i).second; if(!e.isTimeout()) { logger->info("Found socket for %s", addr.c_str()); @@ -401,8 +401,8 @@ DownloadEngine::popPooledSocket (const std::vector<std::string>& ipaddrs, uint16_t port) { SharedHandle<SocketCore> s; - for(std::vector<std::string>::const_iterator i = ipaddrs.begin(); - i != ipaddrs.end(); ++i) { + for(std::vector<std::string>::const_iterator i = ipaddrs.begin(), + eoi = ipaddrs.end(); i != eoi; ++i) { s = popPooledSocket(*i, port); if(!s.isNull()) { break; @@ -417,8 +417,8 @@ DownloadEngine::popPooledSocket const std::vector<std::string>& ipaddrs, uint16_t port) { SharedHandle<SocketCore> s; - for(std::vector<std::string>::const_iterator i = ipaddrs.begin(); - i != ipaddrs.end(); ++i) { + for(std::vector<std::string>::const_iterator i = ipaddrs.begin(), + eoi = ipaddrs.end(); i != eoi; ++i) { s = popPooledSocket(options, *i, port); if(!s.isNull()) { break; diff --git a/src/EpollEventPoll.cc b/src/EpollEventPoll.cc index e5a46e94..f2f96f4e 100644 --- a/src/EpollEventPoll.cc +++ b/src/EpollEventPoll.cc @@ -347,7 +347,8 @@ void EpollEventPoll::poll(const struct timeval& tv) // their API. So we call ares_process_fd for all ares_channel and // re-register their sockets. for(std::deque<SharedHandle<AsyncNameResolverEntry> >::iterator i = - _nameResolverEntries.begin(); i != _nameResolverEntries.end(); ++i) { + _nameResolverEntries.begin(), eoi = _nameResolverEntries.end(); + i != eoi; ++i) { (*i)->processTimeout(); (*i)->removeSocketEvents(this); (*i)->addSocketEvents(this); diff --git a/src/ExtensionMessageRegistry.h b/src/ExtensionMessageRegistry.h index bb108ce8..b261a6a5 100644 --- a/src/ExtensionMessageRegistry.h +++ b/src/ExtensionMessageRegistry.h @@ -72,8 +72,8 @@ public: const std::string& getExtensionName(uint8_t id) const { - for(Extensions::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(Extensions::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const Extensions::value_type& p = *itr; if(p.second == id) { return p.first; diff --git a/src/FeatureConfig.cc b/src/FeatureConfig.cc index 35065528..66dfcf23 100644 --- a/src/FeatureConfig.cc +++ b/src/FeatureConfig.cc @@ -151,8 +151,8 @@ bool FeatureConfig::isSupported(const std::string& feature) const std::string FeatureConfig::featureSummary() const { std::string s; - for(FeatureMap::const_iterator i = _features.begin(); - i != _features.end(); ++i) { + for(FeatureMap::const_iterator i = _features.begin(), eoi = _features.end(); + i != eoi; ++i) { if((*i).second) { s += (*i).first; s += ", "; diff --git a/src/FeedbackURISelector.cc b/src/FeedbackURISelector.cc index 41abf154..ee298e36 100644 --- a/src/FeedbackURISelector.cc +++ b/src/FeedbackURISelector.cc @@ -73,8 +73,8 @@ std::string FeedbackURISelector::select(FileEntry* fileEntry) size_t max = std::min(uris.size(), static_cast<size_t>(NUM_URI)); std::deque<std::string>::iterator urisLast = uris.begin()+max; std::deque<std::pair<SharedHandle<ServerStat>, std::string> > cands; - for(std::deque<std::string>::iterator i = uris.begin(); - i != urisLast; ++i) { + for(std::deque<std::string>::iterator i = uris.begin(), eoi = urisLast; + i != eoi; ++i) { Request r; r.setUrl(*i); SharedHandle<ServerStat> ss = _serverStatMan->find(r.getHost(), @@ -84,8 +84,8 @@ std::string FeedbackURISelector::select(FileEntry* fileEntry) } } if(cands.empty()) { - for(std::deque<std::string>::iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::deque<std::string>::iterator i = uris.begin(), eoi = uris.end(); + i != eoi; ++i) { Request r; r.setUrl(*i); SharedHandle<ServerStat> ss = _serverStatMan->find(r.getHost(), diff --git a/src/File.cc b/src/File.cc index b6fe6643..fcd9c27a 100644 --- a/src/File.cc +++ b/src/File.cc @@ -115,8 +115,8 @@ bool File::mkdirs() { if(util::startsWith(name, A2STR::SLASH_C)) { accDir = A2STR::SLASH_C; } - for(std::vector<std::string>::const_iterator itr = dirs.begin(); - itr != dirs.end(); ++itr, accDir += A2STR::SLASH_C) { + for(std::vector<std::string>::const_iterator itr = dirs.begin(), + eoi = dirs.end(); itr != eoi; ++itr, accDir += A2STR::SLASH_C) { accDir += *itr; if(File(accDir).isDir()) { continue; diff --git a/src/FileEntry.cc b/src/FileEntry.cc index e1d4591e..734eb6e8 100644 --- a/src/FileEntry.cc +++ b/src/FileEntry.cc @@ -223,7 +223,8 @@ void FileEntry::poolRequest(const SharedHandle<Request>& request) bool FileEntry::removeRequest(const SharedHandle<Request>& request) { for(std::deque<SharedHandle<Request> >::iterator i = - _inFlightRequests.begin(); i != _inFlightRequests.end(); ++i) { + _inFlightRequests.begin(), eoi = _inFlightRequests.end(); + i != eoi; ++i) { if((*i).get() == request.get()) { _inFlightRequests.erase(i); return true; @@ -236,7 +237,8 @@ void FileEntry::removeURIWhoseHostnameIs(const std::string& hostname) { std::deque<std::string> newURIs; Request req; - for(std::deque<std::string>::const_iterator itr = _uris.begin(); itr != _uris.end(); ++itr) { + for(std::deque<std::string>::const_iterator itr = _uris.begin(), + eoi = _uris.end(); itr != eoi; ++itr) { if(((*itr).find(hostname) == std::string::npos) || (req.setUrl(*itr) && (req.getHost() != hostname))) { newURIs.push_back(*itr); diff --git a/src/HandleRegistry.h b/src/HandleRegistry.h index 91a0646b..8845fbfa 100644 --- a/src/HandleRegistry.h +++ b/src/HandleRegistry.h @@ -72,8 +72,8 @@ public: std::vector<SharedHandle<T> > getAll() { std::vector<SharedHandle<T> > l; - for(typename HandleMap::const_iterator itr = handleMap.begin(); - itr != handleMap.end(); ++itr) { + for(typename HandleMap::const_iterator itr = handleMap.begin(), + eoi = handleMap.end(); itr != eoi; ++itr) { const typename HandleMap::value_type& p = *itr; l.push_back(p.second); } diff --git a/src/HandshakeExtensionMessage.cc b/src/HandshakeExtensionMessage.cc index a2d0484b..4637bb3e 100644 --- a/src/HandshakeExtensionMessage.cc +++ b/src/HandshakeExtensionMessage.cc @@ -67,8 +67,8 @@ std::string HandshakeExtensionMessage::getPayload() dict["p"] = _tcpPort; } BDE extDict = BDE::dict(); - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; extDict[vt.first] = vt.second; } @@ -91,8 +91,8 @@ std::string HandshakeExtensionMessage::toString() const if(_metadataSize) { strappend(s, ", metadataSize=", util::uitos(_metadataSize)); } - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; strappend(s, ", ", vt.first, "=", util::uitos(vt.second)); } @@ -105,8 +105,8 @@ void HandshakeExtensionMessage::doReceivedAction() _peer->port = _tcpPort; _peer->setIncomingPeer(false); } - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; _peer->setExtension(vt.first, vt.second); } @@ -182,8 +182,8 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length) } const BDE& extDict = dict["m"]; if(extDict.isDict()) { - for(BDE::Dict::const_iterator i = extDict.dictBegin(); - i != extDict.dictEnd(); ++i) { + for(BDE::Dict::const_iterator i = extDict.dictBegin(), + eoi = extDict.dictEnd(); i != eoi; ++i) { if((*i).second.isInteger()) { msg->_extensions[(*i).first] = (*i).second.i(); } diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc index 7e723fab..2c8d0176 100644 --- a/src/HttpConnection.cc +++ b/src/HttpConnection.cc @@ -152,8 +152,8 @@ SharedHandle<HttpResponse> HttpConnection::receiveResponse() bool HttpConnection::isIssued(const SharedHandle<Segment>& segment) const { - for(HttpRequestEntries::const_iterator itr = outstandingHttpRequests.begin(); - itr != outstandingHttpRequests.end(); ++itr) { + for(HttpRequestEntries::const_iterator itr = outstandingHttpRequests.begin(), + eoi = outstandingHttpRequests.end(); itr != eoi; ++itr) { SharedHandle<HttpRequest> httpRequest = (*itr)->getHttpRequest(); if(httpRequest->getSegment() == segment) { return true; diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index f103f5e3..88de932d 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -96,7 +96,8 @@ bool HttpHeader::defined(const std::string& name) const { } const std::string& HttpHeader::getFirst(const std::string& name) const { - std::multimap<std::string, std::string>::const_iterator itr = table.find(util::toLower(name)); + std::multimap<std::string, std::string>::const_iterator itr = + table.find(util::toLower(name)); if(itr == table.end()) { return A2STR::NIL; } else { diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index d897df76..cfd76bef 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -162,7 +162,7 @@ std::string HttpRequest::createRequest() builtinHds.push_back(std::make_pair("User-Agent:", userAgent)); std::string acceptTypes = "*/*"; for(std::vector<std::string>::const_iterator i = _acceptTypes.begin(), - end = _acceptTypes.end(); i != end; ++i) { + eoi = _acceptTypes.end(); i != eoi; ++i) { strappend(acceptTypes, ",", (*i)); } builtinHds.push_back(std::make_pair("Accept:", acceptTypes)); @@ -223,15 +223,15 @@ std::string HttpRequest::createRequest() getProtocol() == Request::PROTO_HTTPS ? true : false); for(std::vector<Cookie>::const_iterator itr = cookies.begin(), - end = cookies.end(); itr != end; ++itr) { + eoi = cookies.end(); itr != eoi; ++itr) { strappend(cookiesValue, (*itr).toString(), ";"); } if(!cookiesValue.empty()) { builtinHds.push_back(std::make_pair("Cookie:", cookiesValue)); } } - for(std::vector<std::pair<std::string, std::string> >::iterator i = - builtinHds.begin(); i != builtinHds.end(); ++i) { + for(std::vector<std::pair<std::string, std::string> >::const_iterator i = + builtinHds.begin(), eoi = builtinHds.end(); i != eoi; ++i) { std::vector<std::string>::const_iterator j = _headers.begin(); std::vector<std::string>::const_iterator jend = _headers.end(); for(; j != jend; ++j) { @@ -245,7 +245,7 @@ std::string HttpRequest::createRequest() } // append additional headers given by user. for(std::vector<std::string>::const_iterator i = _headers.begin(), - end = _headers.end(); i != end; ++i) { + eoi = _headers.end(); i != eoi; ++i) { strappend(requestLine, (*i), A2STR::CRLF); } requestLine += A2STR::CRLF; diff --git a/src/HttpRequestCommand.cc b/src/HttpRequestCommand.cc index 5bf996bd..39f6f17c 100644 --- a/src/HttpRequestCommand.cc +++ b/src/HttpRequestCommand.cc @@ -134,8 +134,8 @@ bool HttpRequestCommand::executeInternal() { _proxyRequest)); _httpConnection->sendRequest(httpRequest); } else { - for(std::vector<SharedHandle<Segment> >::iterator itr = _segments.begin(); - itr != _segments.end(); ++itr) { + for(std::vector<SharedHandle<Segment> >::const_iterator itr = + _segments.begin(), eoi = _segments.end(); itr != eoi; ++itr) { const SharedHandle<Segment>& segment = *itr; if(!_httpConnection->isIssued(segment)) { SharedHandle<HttpRequest> httpRequest diff --git a/src/HttpResponse.cc b/src/HttpResponse.cc index 2fec4f40..d1728a2a 100644 --- a/src/HttpResponse.cc +++ b/src/HttpResponse.cc @@ -114,8 +114,8 @@ std::string HttpResponse::determinFilename() const void HttpResponse::retrieveCookie() { std::vector<std::string> v = httpHeader->get(HttpHeader::SET_COOKIE); - for(std::vector<std::string>::const_iterator itr = v.begin(); itr != v.end(); - ++itr) { + for(std::vector<std::string>::const_iterator itr = v.begin(), eoi = v.end(); + itr != eoi; ++itr) { httpRequest->getCookieStorage()->parseAndStore(*itr, httpRequest->getHost(), httpRequest->getDir()); diff --git a/src/InitiateConnectionCommand.cc b/src/InitiateConnectionCommand.cc index ff81c450..b32184c8 100644 --- a/src/InitiateConnectionCommand.cc +++ b/src/InitiateConnectionCommand.cc @@ -107,8 +107,8 @@ bool InitiateConnectionCommand::executeInternal() { logger->info(MSG_NAME_RESOLUTION_COMPLETE, cuid, hostname.c_str(), strjoin(addrs.begin(), addrs.end(), ", ").c_str()); - for(std::vector<std::string>::const_iterator i = addrs.begin(); - i != addrs.end(); ++i) { + for(std::vector<std::string>::const_iterator i = addrs.begin(), + eoi = addrs.end(); i != eoi; ++i) { e->cacheIPAddress(hostname, *i, port); } ipaddr = e->findCachedIPAddress(hostname, port); diff --git a/src/MSEHandshake.cc b/src/MSEHandshake.cc index db7cd35d..44eb4824 100644 --- a/src/MSEHandshake.cc +++ b/src/MSEHandshake.cc @@ -465,7 +465,8 @@ bool MSEHandshake::receiveReceiverHashAndPadCLength unsigned char* rbufptr = _rbuf; SharedHandle<DownloadContext> downloadContext; for(std::vector<SharedHandle<DownloadContext> >::const_iterator i = - downloadContexts.begin(); i != downloadContexts.end(); ++i) { + downloadContexts.begin(), eoi = downloadContexts.end(); + i != eoi; ++i) { unsigned char md[20]; const BDE& torrentAttrs = (*i)->getAttribute(bittorrent::BITTORRENT); createReq23Hash(md, torrentAttrs[bittorrent::INFO_HASH].uc()); diff --git a/src/Metalink2RequestGroup.cc b/src/Metalink2RequestGroup.cc index 5ad017d8..517851e1 100644 --- a/src/Metalink2RequestGroup.cc +++ b/src/Metalink2RequestGroup.cc @@ -128,8 +128,9 @@ namespace { void removeMetalinkContentTypes(const SharedHandle<RequestGroup>& group) { for(std::vector<std::string>::const_iterator i = - DownloadHandlerConstants::getMetalinkContentTypes().begin(); - i != DownloadHandlerConstants::getMetalinkContentTypes().end(); ++i) { + DownloadHandlerConstants::getMetalinkContentTypes().begin(), + eoi = DownloadHandlerConstants::getMetalinkContentTypes().end(); + i != eoi; ++i) { group->removeAcceptType(*i); } } @@ -148,9 +149,6 @@ Metalink2RequestGroup::createRequestGroup std::vector<int32_t> selectIndexes = util::parseIntRange(option->get(PREF_SELECT_FILE)).flush(); std::sort(selectIndexes.begin(), selectIndexes.end()); - std::vector<SharedHandle<MetalinkEntry> > selectedEntries; - selectedEntries.reserve(entries.size()); - std::vector<std::string> locations; if(option->defined(PREF_METALINK_LOCATION)) { util::split(option->get(PREF_METALINK_LOCATION), @@ -162,10 +160,12 @@ Metalink2RequestGroup::createRequestGroup if(option->get(PREF_METALINK_PREFERRED_PROTOCOL) != V_NONE) { preferredProtocol = option->get(PREF_METALINK_PREFERRED_PROTOCOL); } + std::vector<SharedHandle<MetalinkEntry> > selectedEntries; + selectedEntries.reserve(entries.size()); { int32_t count = 1; for(std::vector<SharedHandle<MetalinkEntry> >::const_iterator i = - entries.begin(); i != entries.end(); ++i, ++count) { + entries.begin(), eoi = entries.end(); i != eoi; ++i, ++count) { (*i)->dropUnsupportedResource(); if((*i)->resources.empty() && (*i)->metaurls.empty()) { continue; @@ -189,7 +189,7 @@ Metalink2RequestGroup::createRequestGroup MetalinkHelper::groupEntryByMetaurlName(entryGroups, selectedEntries); for(std::vector<std::pair<std::string, std::vector<SharedHandle<MetalinkEntry> > > >::const_iterator itr = - entryGroups.begin(); itr != entryGroups.end(); ++itr) { + entryGroups.begin(), eoi = entryGroups.end(); itr != eoi; ++itr) { const std::string& metaurl = (*itr).first; const std::vector<SharedHandle<MetalinkEntry> >& mes = (*itr).second; _logger->info("Processing metaurl group metaurl=%s", metaurl.c_str()); @@ -279,7 +279,7 @@ Metalink2RequestGroup::createRequestGroup std::vector<SharedHandle<FileEntry> > fileEntries; off_t offset = 0; for(std::vector<SharedHandle<MetalinkEntry> >::const_iterator i = - mes.begin(); i != mes.end(); ++i) { + mes.begin(), eoi = mes.end(); i != eoi; ++i) { _logger->info("Metalink: Queueing %s for download as a member.", (*i)->getPath().c_str()); _logger->debug("originalName = %s", (*i)->metaurls[0]->name.c_str()); diff --git a/src/MetalinkHelper.cc b/src/MetalinkHelper.cc index 0635b3d2..3dfac182 100644 --- a/src/MetalinkHelper.cc +++ b/src/MetalinkHelper.cc @@ -86,7 +86,7 @@ void MetalinkHelper::groupEntryByMetaurlName const std::vector<SharedHandle<MetalinkEntry> >& entries) { for(std::vector<SharedHandle<MetalinkEntry> >::const_iterator eiter = - entries.begin(); eiter != entries.end(); ++eiter) { + entries.begin(), eoi = entries.end(); eiter != eoi; ++eiter) { if((*eiter)->metaurls.empty()) { std::pair<std::string, std::vector<SharedHandle<MetalinkEntry> > > p; p.second.push_back(*eiter); diff --git a/src/MultiDiskAdaptor.cc b/src/MultiDiskAdaptor.cc index b1967478..233eef6f 100644 --- a/src/MultiDiskAdaptor.cc +++ b/src/MultiDiskAdaptor.cc @@ -167,7 +167,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries() } for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { diskWriterEntries.push_back (createDiskWriterEntry(*i, (*i)->isRequested())); } @@ -176,10 +176,11 @@ void MultiDiskAdaptor::resetDiskWriterEntries() // TODO Currently, pieceLength == 0 is used for unit testing only. if(pieceLength > 0) { - std::vector<SharedHandle<DiskWriterEntry> >::iterator done = + std::vector<SharedHandle<DiskWriterEntry> >::const_iterator done = diskWriterEntries.begin(); - for(std::vector<SharedHandle<DiskWriterEntry> >::iterator itr = - diskWriterEntries.begin(); itr != diskWriterEntries.end();) { + for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator itr = + diskWriterEntries.begin(), eoi = diskWriterEntries.end(); + itr != eoi;) { const SharedHandle<FileEntry>& fileEntry = (*itr)->getFileEntry(); if(!fileEntry->isRequested()) { @@ -189,7 +190,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries() off_t pieceStartOffset = (fileEntry->getOffset()/pieceLength)*pieceLength; if(itr != diskWriterEntries.begin()) { - for(std::vector<SharedHandle<DiskWriterEntry> >::iterator i = + for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i = itr-1; true; --i) { const SharedHandle<FileEntry>& fileEntry = (*i)->getFileEntry(); if(pieceStartOffset <= fileEntry->getOffset() || @@ -217,7 +218,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries() ++itr; // adjacent backward files are not needed to be allocated. They // just requre DiskWriter - for(; itr != diskWriterEntries.end() && + for(; itr != eoi && (!(*itr)->getFileEntry()->isRequested() || (*itr)->getFileEntry()->getLength() == 0); ++itr) { if(logger->debug()) { @@ -244,8 +245,9 @@ void MultiDiskAdaptor::resetDiskWriterEntries() } } DefaultDiskWriterFactory dwFactory; - for(std::vector<SharedHandle<DiskWriterEntry> >::iterator i = - diskWriterEntries.begin(); i != diskWriterEntries.end(); ++i) { + for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i = + diskWriterEntries.begin(), eoi = diskWriterEntries.end(); + i != eoi; ++i) { if((*i)->needsFileAllocation() || dwreq.find((*i)->getFileEntry()->getPath()) != dwreq.end() || (*i)->fileExists()) { @@ -267,7 +269,8 @@ void MultiDiskAdaptor::resetDiskWriterEntries() void MultiDiskAdaptor::mkdir() const { for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i = - diskWriterEntries.begin(); i != diskWriterEntries.end(); ++i) { + diskWriterEntries.begin(), eoi = diskWriterEntries.end(); + i != eoi; ++i) { (*i)->getFileEntry()->setupDir(); } } @@ -305,8 +308,8 @@ void MultiDiskAdaptor::openFile() mkdir(); // Call DiskWriterEntry::openFile to make sure that zero-length files are // created. - for(DiskWriterEntries::iterator itr = diskWriterEntries.begin(); - itr != diskWriterEntries.end(); ++itr) { + for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(), + eoi = diskWriterEntries.end(); itr != eoi; ++itr) { openIfNot(*itr, &DiskWriterEntry::openFile); } } @@ -316,8 +319,8 @@ void MultiDiskAdaptor::initAndOpenFile() resetDiskWriterEntries(); mkdir(); // Call DiskWriterEntry::initAndOpenFile to make files truncated. - for(DiskWriterEntries::iterator itr = diskWriterEntries.begin(); - itr != diskWriterEntries.end(); ++itr) { + for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(), + eoi = diskWriterEntries.end(); itr != eoi; ++itr) { openIfNot(*itr, &DiskWriterEntry::initAndOpenFile); } } @@ -330,8 +333,8 @@ void MultiDiskAdaptor::openExistingFile() void MultiDiskAdaptor::closeFile() { - for(DiskWriterEntries::iterator itr = diskWriterEntries.begin(); - itr != diskWriterEntries.end(); ++itr) { + for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(), + eoi = diskWriterEntries.end(); itr != eoi; ++itr) { (*itr)->closeFile(); } } @@ -396,7 +399,8 @@ void MultiDiskAdaptor::writeData(const unsigned char* data, size_t len, size_t rem = len; off_t fileOffset = offset-(*first)->getFileEntry()->getOffset(); - for(DiskWriterEntries::const_iterator i = first; i != diskWriterEntries.end(); ++i) { + for(DiskWriterEntries::const_iterator i = first, + eoi = diskWriterEntries.end(); i != eoi; ++i) { size_t writeLength = calculateLength(*i, fileOffset, rem); openIfNot(*i, &DiskWriterEntry::openFile); @@ -416,12 +420,14 @@ void MultiDiskAdaptor::writeData(const unsigned char* data, size_t len, ssize_t MultiDiskAdaptor::readData(unsigned char* data, size_t len, off_t offset) { - DiskWriterEntries::const_iterator first = findFirstDiskWriterEntry(diskWriterEntries, offset); + DiskWriterEntries::const_iterator first = + findFirstDiskWriterEntry(diskWriterEntries, offset); size_t rem = len; size_t totalReadLength = 0; off_t fileOffset = offset-(*first)->getFileEntry()->getOffset(); - for(DiskWriterEntries::const_iterator i = first; i != diskWriterEntries.end(); ++i) { + for(DiskWriterEntries::const_iterator i = first, + eoi = diskWriterEntries.end(); i != eoi; ++i) { size_t readLength = calculateLength(*i, fileOffset, rem); openIfNot(*i, &DiskWriterEntry::openFile); @@ -443,8 +449,8 @@ ssize_t MultiDiskAdaptor::readData(unsigned char* data, size_t len, off_t offset bool MultiDiskAdaptor::fileExists() { - for(std::vector<SharedHandle<FileEntry> >::iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + for(std::vector<SharedHandle<FileEntry> >::const_iterator i = + fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { if((*i)->exists()) { return true; } @@ -455,8 +461,8 @@ bool MultiDiskAdaptor::fileExists() uint64_t MultiDiskAdaptor::size() { uint64_t size = 0; - for(std::vector<SharedHandle<FileEntry> >::iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + for(std::vector<SharedHandle<FileEntry> >::const_iterator i = + fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { size += File((*i)->getPath()).size(); } return size; @@ -469,16 +475,16 @@ FileAllocationIteratorHandle MultiDiskAdaptor::fileAllocationIterator() void MultiDiskAdaptor::enableDirectIO() { - for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(); - itr != diskWriterEntries.end(); ++itr) { + for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(), + eoi = diskWriterEntries.end(); itr != eoi; ++itr) { (*itr)->enableDirectIO(); } } void MultiDiskAdaptor::disableDirectIO() { - for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(); - itr != diskWriterEntries.end(); ++itr) { + for(DiskWriterEntries::const_iterator itr = diskWriterEntries.begin(), + eoi = diskWriterEntries.end(); itr != eoi; ++itr) { (*itr)->disableDirectIO(); } } @@ -496,7 +502,8 @@ void MultiDiskAdaptor::disableReadOnly() void MultiDiskAdaptor::cutTrailingGarbage() { for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i = - diskWriterEntries.begin(); i != diskWriterEntries.end(); ++i) { + diskWriterEntries.begin(), eoi = diskWriterEntries.end(); + i != eoi; ++i) { uint64_t length = (*i)->getFileEntry()->getLength(); if(File((*i)->getFilePath()).size() > length) { // We need open file before calling DiskWriter::truncate(uint64_t) @@ -515,7 +522,7 @@ size_t MultiDiskAdaptor::utime(const Time& actime, const Time& modtime) { size_t numOK = 0; for(std::vector<SharedHandle<FileEntry> >::const_iterator i = - fileEntries.begin(); i != fileEntries.end(); ++i) { + fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { if((*i)->isRequested()) { File f((*i)->getPath()); if(f.isFile() && f.utime(actime, modtime)) { diff --git a/src/Netrc.cc b/src/Netrc.cc index 40b068b6..11e5bb6e 100644 --- a/src/Netrc.cc +++ b/src/Netrc.cc @@ -93,8 +93,8 @@ void Netrc::parse(const std::string& path) } std::vector<std::string> tokens; util::split(line, std::back_inserter(tokens), " \t", true); - for(std::vector<std::string>::const_iterator iter = tokens.begin(); - iter != tokens.end(); ++iter) { + for(std::vector<std::string>::const_iterator iter = tokens.begin(), + eoi = tokens.end(); iter != eoi; ++iter) { const std::string& token = *iter; if(state == GET_TOKEN) { if(token == Netrc::MACHINE) { diff --git a/src/OptionHandlerImpl.h b/src/OptionHandlerImpl.h index 3489163f..1447ae91 100644 --- a/src/OptionHandlerImpl.h +++ b/src/OptionHandlerImpl.h @@ -480,8 +480,8 @@ public: msg += "''"; } else { for(std::vector<std::string>::const_iterator itr = - _validParamValues.begin(); - itr != _validParamValues.end(); ++itr) { + _validParamValues.begin(), eoi = _validParamValues.end(); + itr != eoi; ++itr) { strappend(msg, "'", *itr, "' "); } } diff --git a/src/OptionParser.cc b/src/OptionParser.cc index 7e8b56ac..5508dc8a 100644 --- a/src/OptionParser.cc +++ b/src/OptionParser.cc @@ -209,8 +209,9 @@ void OptionParser::setOptionHandlers (const std::vector<SharedHandle<OptionHandler> >& optionHandlers) { _optionHandlers = optionHandlers; - for(std::vector<SharedHandle<OptionHandler> >::iterator i = - _optionHandlers.begin(); i != _optionHandlers.end(); ++i) { + for(std::vector<SharedHandle<OptionHandler> >::const_iterator i = + _optionHandlers.begin(), eoi = _optionHandlers.end(); + i != eoi; ++i) { (*i)->setOptionID(++_idCounter); } std::sort(_optionHandlers.begin(), _optionHandlers.end(), @@ -230,7 +231,8 @@ void OptionParser::addOptionHandler void OptionParser::parseDefaultValues(Option& option) const { for(std::vector<SharedHandle<OptionHandler> >::const_iterator i = - _optionHandlers.begin(); i != _optionHandlers.end(); ++i) { + _optionHandlers.begin(), eoi = _optionHandlers.end(); + i != eoi; ++i) { if(!(*i)->getDefaultValue().empty()) { (*i)->parse(option, (*i)->getDefaultValue()); } diff --git a/src/PStringBuildVisitor.cc b/src/PStringBuildVisitor.cc index 81d1171a..599a0e86 100644 --- a/src/PStringBuildVisitor.cc +++ b/src/PStringBuildVisitor.cc @@ -75,8 +75,8 @@ void PStringBuildVisitor::visit(PStringNumLoop& s) void PStringBuildVisitor::visit(PStringSelect& s) { const std::vector<std::string>& values = s.getValues(); - for(std::vector<std::string>::const_iterator i = values.begin(); - i != values.end(); ++i) { + for(std::vector<std::string>::const_iterator i = values.begin(), + eoi = values.end(); i != eoi; ++i) { PStringSegment(*i, s.getNext()).accept(*this); } } diff --git a/src/PeerListProcessor.h b/src/PeerListProcessor.h index 59709bbc..9aff5b88 100644 --- a/src/PeerListProcessor.h +++ b/src/PeerListProcessor.h @@ -60,8 +60,8 @@ public: template<typename OutputIterator> void extractPeerFromList(const BDE& peerData, OutputIterator dest) { - for(BDE::List::const_iterator itr = peerData.listBegin(); - itr != peerData.listEnd(); ++itr) { + for(BDE::List::const_iterator itr = peerData.listBegin(), + eoi = peerData.listEnd(); itr != eoi; ++itr) { const BDE& peerDict = *itr; if(!peerDict.isDict()) { continue; diff --git a/src/PeerListenCommand.cc b/src/PeerListenCommand.cc index 1b9f237b..c3ee46b8 100644 --- a/src/PeerListenCommand.cc +++ b/src/PeerListenCommand.cc @@ -75,8 +75,8 @@ bool PeerListenCommand::bindPort(uint16_t& port, IntSequence& seq) std::random_shuffle(randPorts.begin(), randPorts.end(), *SimpleRandomizer::getInstance().get()); - for(std::vector<int32_t>::const_iterator portItr = randPorts.begin(); - portItr != randPorts.end(); ++portItr) { + for(std::vector<int32_t>::const_iterator portItr = randPorts.begin(), + eoi = randPorts.end(); portItr != eoi; ++portItr) { if(!(0 < (*portItr) && (*portItr) <= 65535)) { continue; } diff --git a/src/PeerSessionResource.cc b/src/PeerSessionResource.cc index 60f53799..f10a28fc 100644 --- a/src/PeerSessionResource.cc +++ b/src/PeerSessionResource.cc @@ -213,8 +213,8 @@ PeerSessionResource::getExtensionMessageID(const std::string& name) const std::string PeerSessionResource::getExtensionName(uint8_t id) const { - for(Extensions::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(Extensions::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const Extensions::value_type& p = *itr; if(p.second == id) { return p.first; diff --git a/src/Piece.cc b/src/Piece.cc index 3c71bd8c..4b7620e8 100644 --- a/src/Piece.cc +++ b/src/Piece.cc @@ -176,8 +176,8 @@ size_t Piece::getMissingUnusedBlockIndex { size_t num = bitfield->getFirstNMissingUnusedIndex(indexes, n); if(num) { - for(std::vector<size_t>::const_iterator i = indexes.end()-num; - i != indexes.end(); ++i) { + for(std::vector<size_t>::const_iterator i = indexes.end()-num, + eoi = indexes.end(); i != eoi; ++i) { bitfield->setUseBit(*i); } } diff --git a/src/PieceStatMan.cc b/src/PieceStatMan.cc index ee0425a8..9f01adfb 100644 --- a/src/PieceStatMan.cc +++ b/src/PieceStatMan.cc @@ -81,8 +81,9 @@ PieceStatMan::PieceStatMan(size_t pieceNum, bool randomShuffle): } { size_t order = 0; - for(std::vector<SharedHandle<PieceStat> >::iterator i = - sortedPieceStats.begin(); i != sortedPieceStats.end(); ++i) { + for(std::vector<SharedHandle<PieceStat> >::const_iterator i = + sortedPieceStats.begin(), eoi = sortedPieceStats.end(); + i != eoi; ++i) { _sortedPieceStatIndexes[order] = (*i)->getIndex(); (*i)->setOrder(order++); } diff --git a/src/PriorityPieceSelector.cc b/src/PriorityPieceSelector.cc index 808732b5..cb7ded3d 100644 --- a/src/PriorityPieceSelector.cc +++ b/src/PriorityPieceSelector.cc @@ -44,8 +44,8 @@ PriorityPieceSelector::PriorityPieceSelector bool PriorityPieceSelector::select (size_t& index, const unsigned char* bitfield, size_t nbits) const { - for(std::vector<size_t>::const_iterator i = _prioritizedPieces.begin(); - i != _prioritizedPieces.end(); ++i) { + for(std::vector<size_t>::const_iterator i = _prioritizedPieces.begin(), + eoi = _prioritizedPieces.end(); i != eoi; ++i) { if(bitfield::test(bitfield, nbits, *i)) { index = *i; return true; diff --git a/src/RequestGroup.cc b/src/RequestGroup.cc index c6552f21..275cd164 100644 --- a/src/RequestGroup.cc +++ b/src/RequestGroup.cc @@ -339,8 +339,8 @@ void RequestGroup::createInitialCommand if(!torrentAttrs[bittorrent::NODES].empty() && DHTSetup::initialized()) { std::vector<std::pair<std::string, uint16_t> > entryPoints; const BDE& nodes = torrentAttrs[bittorrent::NODES]; - for(BDE::List::const_iterator i = nodes.listBegin(); - i != nodes.listEnd(); ++i) { + for(BDE::List::const_iterator i = nodes.listBegin(), + eoi = nodes.listEnd(); i != eoi; ++i) { std::pair<std::string, uint16_t> addr ((*i)[bittorrent::HOSTNAME].s(), (*i)[bittorrent::PORT].i()); entryPoints.push_back(addr); @@ -854,8 +854,8 @@ void RequestGroup::preDownloadProcessing() } try { for(std::vector<SharedHandle<PreDownloadHandler> >::const_iterator itr = - _preDownloadHandlers.begin(); - itr != _preDownloadHandlers.end(); ++itr) { + _preDownloadHandlers.begin(), eoi = _preDownloadHandlers.end(); + itr != eoi; ++itr) { if((*itr)->canHandle(this)) { (*itr)->execute(this); return; @@ -880,8 +880,8 @@ void RequestGroup::postDownloadProcessing } try { for(std::vector<SharedHandle<PostDownloadHandler> >::const_iterator itr = - _postDownloadHandlers.begin(); - itr != _postDownloadHandlers.end(); ++itr) { + _postDownloadHandlers.begin(), eoi = _postDownloadHandlers.end(); + itr != eoi; ++itr) { if((*itr)->canHandle(this)) { (*itr)->getNextRequestGroups(groups, this); return; diff --git a/src/RequestGroupMan.cc b/src/RequestGroupMan.cc index 72b03ca4..442ecf6d 100644 --- a/src/RequestGroupMan.cc +++ b/src/RequestGroupMan.cc @@ -389,7 +389,7 @@ public: const std::vector<SharedHandle<PeerStat> >& peerStats = group->getSegmentMan()->getFastestPeerStats(); for(std::vector<SharedHandle<PeerStat> >::const_iterator i = - peerStats.begin(); i != peerStats.end(); ++i) { + peerStats.begin(), eoi = peerStats.end(); i != eoi; ++i) { if((*i)->getHostname().empty() || (*i)->getProtocol().empty()) { continue; } @@ -529,8 +529,8 @@ void RequestGroupMan::fillRequestGroupFromReserver(DownloadEngine* e) void RequestGroupMan::save() { - for(std::deque<SharedHandle<RequestGroup> >::iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { + for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = + _requestGroups.begin(), eoi = _requestGroups.end(); itr != eoi; ++itr) { if((*itr)->allDownloadFinished()) { (*itr)->removeControlFile(); } else { @@ -545,8 +545,8 @@ void RequestGroupMan::save() void RequestGroupMan::closeFile() { - for(std::deque<SharedHandle<RequestGroup> >::iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { + for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = + _requestGroups.begin(), eoi = _requestGroups.end(); itr != eoi; ++itr) { (*itr)->closeFile(); } } @@ -558,7 +558,8 @@ RequestGroupMan::DownloadStat RequestGroupMan::getDownloadStat() const size_t inprogress = 0; downloadresultcode::RESULT lastError = downloadresultcode::FINISHED; for(std::deque<SharedHandle<DownloadResult> >::const_iterator itr = - _downloadResults.begin(); itr != _downloadResults.end(); ++itr) { + _downloadResults.begin(), eoi = _downloadResults.end(); + itr != eoi; ++itr) { if((*itr)->result == downloadresultcode::FINISHED) { ++finished; } else { @@ -567,7 +568,7 @@ RequestGroupMan::DownloadStat RequestGroupMan::getDownloadStat() const } } for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { + _requestGroups.begin(), eoi = _requestGroups.end(); itr != eoi; ++itr) { DownloadResultHandle result = (*itr)->createDownloadResult(); if(result->result == downloadresultcode::FINISHED) { ++finished; @@ -602,8 +603,9 @@ void RequestGroupMan::showDownloadResults(std::ostream& o) const int err = 0; int inpr = 0; - for(std::deque<SharedHandle<DownloadResult> >::const_iterator itr = _downloadResults.begin(); - itr != _downloadResults.end(); ++itr) { + for(std::deque<SharedHandle<DownloadResult> >::const_iterator itr = + _downloadResults.begin(), eoi = _downloadResults.end(); + itr != eoi; ++itr) { std::string status; if((*itr)->result == downloadresultcode::FINISHED) { status = MARK_OK; @@ -618,7 +620,7 @@ void RequestGroupMan::showDownloadResults(std::ostream& o) const o << formatDownloadResult(status, *itr) << "\n"; } for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { + _requestGroups.begin(), eoi = _requestGroups.end(); itr != eoi; ++itr) { DownloadResultHandle result = (*itr)->createDownloadResult(); std::string status; if(result->result == downloadresultcode::FINISHED) { @@ -697,7 +699,7 @@ bool RequestGroupMan::isSameFileBeingDownloaded(RequestGroup* requestGroup) cons } std::vector<std::string> files; for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { + _requestGroups.begin(), eoi = _requestGroups.end(); itr != eoi; ++itr) { if((*itr).get() != requestGroup) { const std::vector<SharedHandle<FileEntry> >& entries = (*itr)->getDownloadContext()->getFileEntries(); @@ -715,17 +717,17 @@ bool RequestGroupMan::isSameFileBeingDownloaded(RequestGroup* requestGroup) cons void RequestGroupMan::halt() { - for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { - (*itr)->setHaltRequested(true); + for(std::deque<SharedHandle<RequestGroup> >::const_iterator i = + _requestGroups.begin(), eoi = _requestGroups.end(); i != eoi; ++i) { + (*i)->setHaltRequested(true); } } void RequestGroupMan::forceHalt() { - for(std::deque<SharedHandle<RequestGroup> >::const_iterator itr = - _requestGroups.begin(); itr != _requestGroups.end(); ++itr) { - (*itr)->setForceHaltRequested(true); + for(std::deque<SharedHandle<RequestGroup> >::const_iterator i = + _requestGroups.begin(), eoi = _requestGroups.end(); i != eoi; ++i) { + (*i)->setForceHaltRequested(true); } } @@ -733,7 +735,7 @@ TransferStat RequestGroupMan::calculateStat() { TransferStat s; for(std::deque<SharedHandle<RequestGroup> >::const_iterator i = - _requestGroups.begin(); i != _requestGroups.end(); ++i) { + _requestGroups.begin(), eoi = _requestGroups.end(); i != eoi; ++i) { s += (*i)->calculateStat(); } return s; @@ -743,7 +745,7 @@ SharedHandle<DownloadResult> RequestGroupMan::findDownloadResult(int32_t gid) const { for(std::deque<SharedHandle<DownloadResult> >::const_iterator i = - _downloadResults.begin(); i != _downloadResults.end(); ++i) { + _downloadResults.begin(), eoi = _downloadResults.end(); i != eoi; ++i) { if((*i)->gid == gid) { return *i; } diff --git a/src/SegmentMan.cc b/src/SegmentMan.cc index 1b07429f..b8ced1f1 100644 --- a/src/SegmentMan.cc +++ b/src/SegmentMan.cc @@ -158,8 +158,8 @@ SharedHandle<Segment> SegmentMan::checkoutSegment void SegmentMan::getInFlightSegment (std::vector<SharedHandle<Segment> >& segments, cuid_t cuid) { - for(SegmentEntries::iterator itr = usedSegmentEntries.begin(); - itr != usedSegmentEntries.end(); ++itr) { + for(SegmentEntries::const_iterator itr = usedSegmentEntries.begin(), + eoi = usedSegmentEntries.end(); itr != eoi; ++itr) { const SegmentEntryHandle& segmentEntry = *itr; if(segmentEntry->cuid == cuid) { segments.push_back(segmentEntry->segment); @@ -199,8 +199,8 @@ void SegmentMan::getSegment segments.push_back(segment); } } - for(std::vector<SharedHandle<Segment> >::const_iterator i = pending.begin(); - i != pending.end(); ++i) { + for(std::vector<SharedHandle<Segment> >::const_iterator i = pending.begin(), + eoi = pending.end(); i != eoi; ++i) { cancelSegment(cuid, *i); } } @@ -223,11 +223,12 @@ void SegmentMan::cancelSegment(const SharedHandle<Segment>& segment) } void SegmentMan::cancelSegment(cuid_t cuid) { - for(SegmentEntries::iterator itr = usedSegmentEntries.begin(); - itr != usedSegmentEntries.end();) { + for(SegmentEntries::iterator itr = usedSegmentEntries.begin(), + eoi = usedSegmentEntries.end(); itr != eoi;) { if((*itr)->cuid == cuid) { cancelSegment((*itr)->segment); itr = usedSegmentEntries.erase(itr); + eoi = usedSegmentEntries.end(); } else { ++itr; } @@ -237,11 +238,12 @@ void SegmentMan::cancelSegment(cuid_t cuid) { void SegmentMan::cancelSegment (cuid_t cuid, const SharedHandle<Segment>& segment) { - for(SegmentEntries::iterator itr = usedSegmentEntries.begin(); - itr != usedSegmentEntries.end();) { + for(SegmentEntries::iterator itr = usedSegmentEntries.begin(), + eoi = usedSegmentEntries.end(); itr != eoi;) { if((*itr)->cuid == cuid && (*itr)->segment == segment) { cancelSegment((*itr)->segment); itr = usedSegmentEntries.erase(itr); + //eoi = usedSegmentEntries.end(); break; } else { ++itr; @@ -290,8 +292,8 @@ uint64_t SegmentMan::getDownloadLength() const { void SegmentMan::registerPeerStat(const SharedHandle<PeerStat>& peerStat) { - for(std::vector<SharedHandle<PeerStat> >::iterator i = peerStats.begin(); - i != peerStats.end(); ++i) { + for(std::vector<SharedHandle<PeerStat> >::iterator i = peerStats.begin(), + eoi = peerStats.end(); i != eoi; ++i) { if((*i)->getStatus() == PeerStat::IDLE) { *i = peerStat; return; @@ -338,7 +340,7 @@ unsigned int SegmentMan::calculateDownloadSpeed() _lastPeerStatDlspdMapUpdated.reset(); _peerStatDlspdMap.clear(); for(std::vector<SharedHandle<PeerStat> >::const_iterator i = - peerStats.begin(); i != peerStats.end(); ++i) { + peerStats.begin(), eoi = peerStats.end(); i != eoi; ++i) { if((*i)->getStatus() == PeerStat::ACTIVE) { unsigned int s = (*i)->calculateDownloadSpeed(); _peerStatDlspdMap[(*i)->getCuid()] = s; diff --git a/src/SelectEventPoll.cc b/src/SelectEventPoll.cc index 229a48a8..e95c0ab5 100644 --- a/src/SelectEventPoll.cc +++ b/src/SelectEventPoll.cc @@ -179,10 +179,10 @@ void SelectEventPoll::poll(const struct timeval& tv) #endif // __MINGW32__ #ifdef ENABLE_ASYNC_DNS - for(std::deque<SharedHandle<AsyncNameResolverEntry> >::iterator itr = - _nameResolverEntries.begin(); itr != _nameResolverEntries.end(); - ++itr) { - SharedHandle<AsyncNameResolverEntry>& entry = *itr; + for(std::deque<SharedHandle<AsyncNameResolverEntry> >::const_iterator itr = + _nameResolverEntries.begin(), eoi = _nameResolverEntries.end(); + itr != eoi; ++itr) { + const SharedHandle<AsyncNameResolverEntry>& entry = *itr; int fd = entry->getFds(&rfds, &wfds); // TODO force error if fd == 0 if(_fdmax < fd) { @@ -201,8 +201,8 @@ void SelectEventPoll::poll(const struct timeval& tv) #endif // !__MINGW32__ } while(retval == -1 && errno == EINTR); if(retval > 0) { - for(std::deque<SharedHandle<SocketEntry> >::iterator i = - _socketEntries.begin(); i != _socketEntries.end(); ++i) { + for(std::deque<SharedHandle<SocketEntry> >::const_iterator i = + _socketEntries.begin(), eoi = _socketEntries.end(); i != eoi; ++i) { int events = 0; if(FD_ISSET((*i)->getSocket(), &rfds)) { events |= EventPoll::EVENT_READ; @@ -215,8 +215,9 @@ void SelectEventPoll::poll(const struct timeval& tv) } #ifdef ENABLE_ASYNC_DNS - for(std::deque<SharedHandle<AsyncNameResolverEntry> >::iterator i = - _nameResolverEntries.begin(); i != _nameResolverEntries.end(); ++i) { + for(std::deque<SharedHandle<AsyncNameResolverEntry> >::const_iterator i = + _nameResolverEntries.begin(), eoi = _nameResolverEntries.end(); + i != eoi; ++i) { (*i)->process(&rfds, &wfds); } @@ -232,8 +233,8 @@ void SelectEventPoll::updateFdSet() #endif // !__MINGW32__ FD_ZERO(&_rfdset); FD_ZERO(&_wfdset); - for(std::deque<SharedHandle<SocketEntry> >::iterator i = - _socketEntries.begin(); i != _socketEntries.end(); ++i) { + for(std::deque<SharedHandle<SocketEntry> >::const_iterator i = + _socketEntries.begin(), eoi = _socketEntries.end(); i != eoi; ++i) { sock_t fd = (*i)->getSocket(); int events = (*i)->getEvents(); if(events&EventPoll::EVENT_READ) { diff --git a/src/ServerStatMan.cc b/src/ServerStatMan.cc index ba403420..8e90f323 100644 --- a/src/ServerStatMan.cc +++ b/src/ServerStatMan.cc @@ -105,8 +105,8 @@ bool ServerStatMan::load(std::istream& in) std::vector<std::string> items; util::split(line, std::back_inserter(items), ","); std::map<std::string, std::string> m; - for(std::vector<std::string>::const_iterator i = items.begin(); - i != items.end(); ++i) { + for(std::vector<std::string>::const_iterator i = items.begin(), + eoi = items.end(); i != eoi; ++i) { std::pair<std::string, std::string> p = util::split(*i, "="); util::trimSelf(p.first); util::trimSelf(p.second); diff --git a/src/SocketCore.cc b/src/SocketCore.cc index 3857922d..a9b019db 100644 --- a/src/SocketCore.cc +++ b/src/SocketCore.cc @@ -307,7 +307,8 @@ void SocketCore::bind(uint16_t port, int flags) } } else { for(std::vector<std::pair<struct sockaddr_storage, socklen_t> >:: - const_iterator i = _bindAddrs.begin(); i != _bindAddrs.end(); ++i) { + const_iterator i = _bindAddrs.begin(), eoi = _bindAddrs.end(); + i != eoi; ++i) { char host[NI_MAXHOST]; int s; s = getnameinfo(reinterpret_cast<const struct sockaddr*>(&(*i).first), @@ -410,7 +411,8 @@ void SocketCore::establishConnection(const std::string& host, uint16_t port) if(!_bindAddrs.empty()) { bool bindSuccess = false; for(std::vector<std::pair<struct sockaddr_storage, socklen_t> >:: - const_iterator i = _bindAddrs.begin(); i != _bindAddrs.end(); ++i) { + const_iterator i = _bindAddrs.begin(), eoi = _bindAddrs.end(); + i != eoi; ++i) { if(::bind(fd,reinterpret_cast<const struct sockaddr*>(&(*i).first), (*i).second) == -1) { if(LogFactory::getInstance()->debug()) { @@ -1249,7 +1251,8 @@ void SocketCore::bindAddress(const std::string& iface) } else { _bindAddrs = bindAddrs; for(std::vector<std::pair<struct sockaddr_storage, socklen_t> >:: - const_iterator i = _bindAddrs.begin(); i != _bindAddrs.end(); ++i) { + const_iterator i = _bindAddrs.begin(), eoi = _bindAddrs.end(); + i != eoi; ++i) { char host[NI_MAXHOST]; int s; s = getnameinfo(reinterpret_cast<const struct sockaddr*>(&(*i).first), diff --git a/src/UTMetadataRequestTracker.cc b/src/UTMetadataRequestTracker.cc index fd6da586..33380a8c 100644 --- a/src/UTMetadataRequestTracker.cc +++ b/src/UTMetadataRequestTracker.cc @@ -68,8 +68,8 @@ std::vector<size_t> UTMetadataRequestTracker::removeTimeoutEntry() { std::vector<size_t> indexes; const time_t TIMEOUT = 20; - for(std::vector<RequestEntry>::iterator i = _trackedRequests.begin(); - i != _trackedRequests.end();) { + for(std::vector<RequestEntry>::iterator i = _trackedRequests.begin(), + eoi = _trackedRequests.end(); i != eoi;) { if((*i).elapsed(TIMEOUT)) { if(_logger->debug()) { _logger->debug("ut_metadata request timeout. index=%lu", @@ -77,6 +77,7 @@ std::vector<size_t> UTMetadataRequestTracker::removeTimeoutEntry() } indexes.push_back((*i)._index); i = _trackedRequests.erase(i); + eoi = _trackedRequests.end(); } else { ++i; } @@ -97,8 +98,8 @@ size_t UTMetadataRequestTracker::avail() const std::vector<size_t> UTMetadataRequestTracker::getAllTrackedIndex() const { std::vector<size_t> indexes; - for(std::vector<RequestEntry>::const_iterator i = _trackedRequests.begin(); - i != _trackedRequests.end(); ++i) { + for(std::vector<RequestEntry>::const_iterator i = _trackedRequests.begin(), + eoi = _trackedRequests.end(); i != eoi; ++i) { indexes.push_back((*i)._index); } return indexes; diff --git a/src/UTPexExtensionMessage.cc b/src/UTPexExtensionMessage.cc index 2e54852f..e2ba37e6 100644 --- a/src/UTPexExtensionMessage.cc +++ b/src/UTPexExtensionMessage.cc @@ -76,8 +76,8 @@ UTPexExtensionMessage::createCompactPeerListAndFlag { std::string addrstring; std::string flagstring; - for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(); - itr != peers.end(); ++itr) { + for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(), + eoi = peers.end(); itr != eoi; ++itr) { unsigned char compact[6]; if(bittorrent::createcompact(compact, (*itr)->ipaddr, (*itr)->port)) { addrstring.append(&compact[0], &compact[6]); diff --git a/src/XmlRpcMethod.cc b/src/XmlRpcMethod.cc index d66b3ab1..35e89bd1 100644 --- a/src/XmlRpcMethod.cc +++ b/src/XmlRpcMethod.cc @@ -103,8 +103,8 @@ static void gatherOption const BDE& value = (*first).second; if((optionName == PREF_HEADER || optionName == PREF_INDEX_OUT) && value.isList()){ - for(BDE::List::const_iterator argiter = value.listBegin(); - argiter != value.listEnd(); ++argiter) { + for(BDE::List::const_iterator argiter = value.listBegin(), + eoi = value.listEnd(); argiter != eoi; ++argiter) { if((*argiter).isString()) { optionHandler->parse(*option.get(), (*argiter).s()); } diff --git a/src/XmlRpcMethodImpl.cc b/src/XmlRpcMethodImpl.cc index 36a8b9c6..c6a12161 100644 --- a/src/XmlRpcMethodImpl.cc +++ b/src/XmlRpcMethodImpl.cc @@ -168,8 +168,8 @@ static void getPosParam(const BDE& params, size_t posParamIndex, template<typename OutputIterator> static void extractUris(OutputIterator out, const BDE& src) { - for(BDE::List::const_iterator i = src.listBegin(), end = src.listEnd(); - i != end; ++i) { + for(BDE::List::const_iterator i = src.listBegin(), eoi = src.listEnd(); + i != eoi; ++i) { if((*i).isString()) { out++ = (*i).s(); } @@ -269,7 +269,7 @@ BDE AddMetalinkXmlRpcMethod::process } BDE gids = BDE::list(); for(std::vector<SharedHandle<RequestGroup> >::const_iterator i = - result.begin(); i != result.end(); ++i) { + result.begin(), eoi = result.end(); i != eoi; ++i) { gids << BDE(util::itos((*i)->getGID())); } return gids; @@ -325,8 +325,8 @@ static void createFileEntry(BDE& files, InputIterator first, InputIterator last) BDE uriList = BDE::list(); std::vector<std::string> uris; (*first)->getUris(uris); - for(std::vector<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::vector<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { BDE uriEntry = BDE::dict(); uriEntry[KEY_URI] = *i; uriList << uriEntry; @@ -362,8 +362,8 @@ void gatherProgressCommon if(!group->followedBy().empty()) { BDE list = BDE::list(); // The element is GID. - for(std::vector<int32_t>::const_iterator i = group->followedBy().begin(); - i != group->followedBy().end(); ++i) { + for(std::vector<int32_t>::const_iterator i = group->followedBy().begin(), + eoi = group->followedBy().end(); i != eoi; ++i) { list << util::itos(*i); } entryDict[KEY_FOLLOWED_BY] = list; @@ -395,11 +395,11 @@ void gatherBitTorrentMetadata(BDE& btDict, const BDE& torrentAttrs) // TODO Would it be good to add copy() method in BDE? const BDE& announceList = torrentAttrs[bittorrent::ANNOUNCE_LIST]; BDE destAnnounceList = BDE::list(); - for(BDE::List::const_iterator l = announceList.listBegin(); - l != announceList.listEnd(); ++l) { + for(BDE::List::const_iterator l = announceList.listBegin(), + eoi = announceList.listEnd(); l != eoi; ++l) { BDE destAnnounceTier = BDE::list(); - for(BDE::List::const_iterator t = (*l).listBegin(); - t != (*l).listEnd(); ++t) { + for(BDE::List::const_iterator t = (*l).listBegin(), + eoi2 = (*l).listEnd(); t != eoi2; ++t) { destAnnounceTier << (*t); } destAnnounceList << destAnnounceTier; @@ -435,7 +435,7 @@ static void gatherPeer(BDE& peers, const SharedHandle<PeerStorage>& ps) std::vector<SharedHandle<Peer> > activePeers; ps->getActivePeers(activePeers); for(std::vector<SharedHandle<Peer> >::const_iterator i = - activePeers.begin(); i != activePeers.end(); ++i) { + activePeers.begin(), eoi = activePeers.end(); i != eoi; ++i) { BDE peerEntry = BDE::dict(); peerEntry[KEY_PEER_ID] = util::torrentUrlencode((*i)->getPeerId(), PEER_ID_LENGTH); @@ -483,8 +483,8 @@ void gatherStoppedDownload if(!ds->followedBy.empty()) { BDE list = BDE::list(); // The element is GID. - for(std::vector<int32_t>::const_iterator i = ds->followedBy.begin(); - i != ds->followedBy.end(); ++i) { + for(std::vector<int32_t>::const_iterator i = ds->followedBy.begin(), + eoi = ds->followedBy.end(); i != eoi; ++i) { list << util::itos(*i); } entryDict[KEY_FOLLOWED_BY] = list; @@ -561,8 +561,8 @@ BDE GetUrisXmlRpcMethod::process if(!group->getDownloadContext()->getFileEntries().empty()) { std::vector<std::string> uris; group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - for(std::vector<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::vector<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { BDE entry = BDE::dict(); entry[KEY_URI] = *i; uriList << entry; @@ -642,7 +642,7 @@ BDE TellActiveXmlRpcMethod::process const std::deque<SharedHandle<RequestGroup> >& groups = e->_requestGroupMan->getRequestGroups(); for(std::deque<SharedHandle<RequestGroup> >::const_iterator i = - groups.begin(); i != groups.end(); ++i) { + groups.begin(), eoi = groups.end(); i != eoi; ++i) { BDE entryDict = BDE::dict(); entryDict[KEY_STATUS] = BDE_ACTIVE; gatherProgress(entryDict, *i, e); @@ -757,7 +757,8 @@ BDE GetVersionXmlRpcMethod::process result[KEY_VERSION] = std::string(PACKAGE_VERSION); BDE featureList = BDE::list(); const FeatureMap& features = FeatureConfig::getInstance()->getFeatures(); - for(FeatureMap::const_iterator i = features.begin(); i != features.end();++i){ + for(FeatureMap::const_iterator i = features.begin(), eoi = features.end(); + i != eoi;++i){ if((*i).second) { featureList << (*i).first; } @@ -803,8 +804,8 @@ BDE GetGlobalOptionXmlRpcMethod::process (const XmlRpcRequest& req, DownloadEngine* e) { BDE result = BDE::dict(); - for(std::map<std::string, std::string>::const_iterator i = e->option->begin(); - i != e->option->end(); ++i) { + for(std::map<std::string, std::string>::const_iterator i = e->option->begin(), + eoi = e->option->end(); i != eoi; ++i) { SharedHandle<OptionHandler> h = _optionParser->findByName((*i).first); if(!h.isNull() && !h->isHidden()) { result[(*i).first] = (*i).second; @@ -861,8 +862,8 @@ BDE SystemMulticallXmlRpcMethod::process } const BDE& methodSpecs = params[0]; BDE list = BDE::list(); - for(BDE::List::const_iterator i = methodSpecs.listBegin(); - i != methodSpecs.listEnd(); ++i) { + for(BDE::List::const_iterator i = methodSpecs.listBegin(), + eoi = methodSpecs.listEnd(); i != eoi; ++i) { if(!(*i).isDict()) { list << createErrorResponse (DL_ABORT_EX("system.multicall expected struct.")); diff --git a/src/bencode.cc b/src/bencode.cc index eac003f8..763e19a9 100644 --- a/src/bencode.cc +++ b/src/bencode.cc @@ -212,7 +212,8 @@ static void encodeIter(std::ostream& o, const BDE& bde) o.write(s.data(), s.size()); } else if(bde.isDict()) { o << "d"; - for(BDE::Dict::const_iterator i = bde.dictBegin(); i != bde.dictEnd(); ++i){ + for(BDE::Dict::const_iterator i = bde.dictBegin(), eoi = bde.dictEnd(); + i != eoi; ++i){ const std::string& key = (*i).first; o << key.size() << ":"; o.write(key.data(), key.size()); @@ -221,7 +222,8 @@ static void encodeIter(std::ostream& o, const BDE& bde) o << "e"; } else if(bde.isList()) { o << "l"; - for(BDE::List::const_iterator i = bde.listBegin(); i != bde.listEnd(); ++i){ + for(BDE::List::const_iterator i = bde.listBegin(), eoi = bde.listEnd(); + i != eoi; ++i){ encodeIter(o, *i); } o << "e"; diff --git a/src/bittorrent_helper.cc b/src/bittorrent_helper.cc index 9538db8d..eaffd9fa 100644 --- a/src/bittorrent_helper.cc +++ b/src/bittorrent_helper.cc @@ -150,8 +150,8 @@ static void extractUrlList (BDE& torrent, std::vector<std::string>& uris, const BDE& bde) { if(bde.isList()) { - for(BDE::List::const_iterator itr = bde.listBegin(); - itr != bde.listEnd(); ++itr) { + for(BDE::List::const_iterator itr = bde.listBegin(), eoi = bde.listEnd(); + itr != eoi; ++itr) { if((*itr).isString()) { uris.push_back((*itr).s()); } @@ -221,8 +221,8 @@ static void extractFileEntries off_t offset = 0; // multi-file mode torrent[MODE] = MULTI; - for(BDE::List::const_iterator itr = filesList.listBegin(); - itr != filesList.listEnd(); ++itr) { + for(BDE::List::const_iterator itr = filesList.listBegin(), + eoi = filesList.listEnd(); itr != eoi; ++itr) { const BDE& fileDict = *itr; if(!fileDict.isDict()) { continue; @@ -277,8 +277,8 @@ static void extractFileEntries // For each uri in urlList, if it ends with '/', then // concatenate name to it. Specification just says so. std::vector<std::string> uris; - for(std::vector<std::string>::const_iterator i = urlList.begin(); - i != urlList.end(); ++i) { + for(std::vector<std::string>::const_iterator i = urlList.begin(), + eoi = urlList.end(); i != eoi; ++i) { if(util::endsWith(*i, A2STR::SLASH_C)) { uris.push_back((*i)+name); } else { @@ -305,10 +305,10 @@ static void extractAnnounce(BDE& torrent, const BDE& rootDict) if(announceList.isList()) { torrent[ANNOUNCE_LIST] = announceList; BDE& tiers = torrent[ANNOUNCE_LIST]; - for(BDE::List::iterator tieriter = tiers.listBegin(); - tieriter != tiers.listEnd(); ++tieriter) { - for(BDE::List::iterator uriiter = (*tieriter).listBegin(); - uriiter != (*tieriter).listEnd(); ++uriiter) { + for(BDE::List::iterator tieriter = tiers.listBegin(), + eoi = tiers.listEnd(); tieriter != eoi; ++tieriter) { + for(BDE::List::iterator uriiter = (*tieriter).listBegin(), + eoi2 = (*tieriter).listEnd(); uriiter != eoi2; ++uriiter) { if((*uriiter).isString()) { *uriiter = util::trim((*uriiter).s()); } @@ -329,8 +329,8 @@ static void extractNodes(BDE& torrent, const BDE& nodesList) { BDE nodes = BDE::list(); if(nodesList.isList()) { - for(BDE::List::const_iterator i = nodesList.listBegin(); - i != nodesList.listEnd(); ++i) { + for(BDE::List::const_iterator i = nodesList.listBegin(), + eoi = nodesList.listEnd(); i != eoi; ++i) { const BDE& addrPairList = (*i); if(!addrPairList.isList() || addrPairList.size() != 2) { continue; @@ -567,13 +567,13 @@ void print(std::ostream& o, const SharedHandle<DownloadContext>& dctx) o << "Mode: " << torrentAttrs[MODE].s() << "\n"; o << "Announce:" << "\n"; const BDE& announceList = torrentAttrs[ANNOUNCE_LIST]; - for(BDE::List::const_iterator tieritr = announceList.listBegin(); - tieritr != announceList.listEnd(); ++tieritr) { + for(BDE::List::const_iterator tieritr = announceList.listBegin(), + eoi = announceList.listEnd(); tieritr != eoi; ++tieritr) { if(!(*tieritr).isList()) { continue; } - for(BDE::List::const_iterator i = (*tieritr).listBegin(); - i != (*tieritr).listEnd(); ++i) { + for(BDE::List::const_iterator i = (*tieritr).listBegin(), + eoi2 = (*tieritr).listEnd(); i != eoi2; ++i) { o << " " << (*i).s(); } o << "\n"; @@ -586,8 +586,8 @@ void print(std::ostream& o, const SharedHandle<DownloadContext>& dctx) if(!torrentAttrs[URL_LIST].empty()) { const BDE& urlList = torrentAttrs[URL_LIST]; o << "URL List: " << "\n"; - for(BDE::List::const_iterator i = urlList.listBegin(); - i != urlList.listEnd(); ++i) { + for(BDE::List::const_iterator i = urlList.listBegin(), + eoi = urlList.listEnd(); i != eoi; ++i) { o << " " << (*i).s() << "\n"; } } @@ -886,8 +886,8 @@ BDE parseMagnet(const std::string& magnet) BDE announceList = BDE::list(); if(r.containsKey("tr")) { const BDE& uris = r["tr"]; - for(BDE::List::const_iterator i = uris.listBegin(); i != uris.listEnd(); - ++i) { + for(BDE::List::const_iterator i = uris.listBegin(), eoi = uris.listEnd(); + i != eoi; ++i) { BDE tier = BDE::list(); tier << *i; announceList << tier; @@ -944,10 +944,10 @@ std::string torrent2Magnet(const BDE& attrs) } if(attrs.containsKey(ANNOUNCE_LIST)) { const BDE& tiers = attrs[ANNOUNCE_LIST]; - for(BDE::List::const_iterator tieriter = tiers.listBegin(); - tieriter != tiers.listEnd(); ++tieriter) { - for(BDE::List::const_iterator uriiter = (*tieriter).listBegin(); - uriiter != (*tieriter).listEnd(); ++uriiter) { + for(BDE::List::const_iterator tieriter = tiers.listBegin(), + eoi = tiers.listEnd(); tieriter != eoi; ++tieriter) { + for(BDE::List::const_iterator uriiter = (*tieriter).listBegin(), + eoi2 = (*tieriter).listEnd(); uriiter != eoi2; ++uriiter) { uri += "&tr="; uri += util::urlencode((*uriiter).s()); } diff --git a/src/download_helper.cc b/src/download_helper.cc index ad6bed5a..0855e9ea 100644 --- a/src/download_helper.cc +++ b/src/download_helper.cc @@ -156,8 +156,8 @@ static void unfoldURI { ParameterizedStringParser p; PStringBuildVisitor v; - for(std::vector<std::string>::const_iterator itr = args.begin(); - itr != args.end(); ++itr) { + for(std::vector<std::string>::const_iterator itr = args.begin(), + eoi = args.end(); itr != eoi; ++itr) { v.reset(); p.parse(*itr)->accept(v); result.insert(result.end(), v.getURIs().begin(), v.getURIs().end()); @@ -221,8 +221,8 @@ createBtRequestGroup(const std::string& torrentFilePath, std::istringstream indexOutIn(option->get(PREF_INDEX_OUT)); std::map<size_t, std::string> indexPathMap = util::createIndexPathMap(indexOutIn); - for(std::map<size_t, std::string>::const_iterator i = indexPathMap.begin(); - i != indexPathMap.end(); ++i) { + for(std::map<size_t, std::string>::const_iterator i = indexPathMap.begin(), + eoi = indexPathMap.end(); i != eoi; ++i) { dctx->setFilePathWithIndex ((*i).first, util::applyDir(dctx->getDir(), (*i).second)); } @@ -431,7 +431,8 @@ static void createRequestGroupForUriList SharedHandle<Option> requestOption(new Option(*option.get())); for(std::set<std::string>::const_iterator i = - listRequestOptions().begin(); i != listRequestOptions().end(); ++i) { + listRequestOptions().begin(), eoi = listRequestOptions().end(); + i != eoi; ++i) { if(tempOption->defined(*i)) { requestOption->put(*i, tempOption->get(*i)); } diff --git a/src/magnet.cc b/src/magnet.cc index c74c4ba2..8fb3d6a1 100644 --- a/src/magnet.cc +++ b/src/magnet.cc @@ -49,8 +49,8 @@ BDE parse(const std::string& magnet) util::split(std::string(magnet.begin()+8, magnet.end()), std::back_inserter(queries), "&"); BDE dict = BDE::dict(); - for(std::vector<std::string>::const_iterator i = queries.begin(); - i != queries.end(); ++i) { + for(std::vector<std::string>::const_iterator i = queries.begin(), + eoi = queries.end(); i != eoi; ++i) { std::pair<std::string, std::string> kv; util::split(kv, *i, '='); std::string value = util::urldecode(kv.second); diff --git a/src/main.cc b/src/main.cc index 7ad7e963..242dcaa5 100644 --- a/src/main.cc +++ b/src/main.cc @@ -135,8 +135,8 @@ static void showFiles (const std::vector<std::string>& uris, const SharedHandle<Option>& op) { ProtocolDetector dt; - for(std::vector<std::string>::const_iterator i = uris.begin(); - i != uris.end(); ++i) { + for(std::vector<std::string>::const_iterator i = uris.begin(), + eoi = uris.end(); i != eoi; ++i) { printf(">>> "); printf(MSG_SHOW_FILES, (*i).c_str()); printf("\n"); diff --git a/src/messageDigest.cc b/src/messageDigest.cc index ce928a49..0043c138 100644 --- a/src/messageDigest.cc +++ b/src/messageDigest.cc @@ -132,8 +132,8 @@ std::string MessageDigestContext::getSupportedAlgoString() { const DigestAlgoMap& allAlgos = getDigestAlgos(); std::string algos; - for(DigestAlgoMap::const_iterator itr = allAlgos.begin(); - itr != allAlgos.end(); ++itr) { + for(DigestAlgoMap::const_iterator itr = allAlgos.begin(), + eoi = allAlgos.end(); itr != eoi; ++itr) { algos += (*itr).first; algos += ", "; } diff --git a/src/util.cc b/src/util.cc index 2df4ff37..5b6b6832 100644 --- a/src/util.cc +++ b/src/util.cc @@ -295,8 +295,8 @@ std::string torrentUrlencode(const std::string& target) std::string urldecode(const std::string& target) { std::string result; - for(std::string::const_iterator itr = target.begin(); - itr != target.end(); ++itr) { + for(std::string::const_iterator itr = target.begin(), eoi = target.end(); + itr != eoi; ++itr) { if(*itr == '%') { if(itr+1 != target.end() && itr+2 != target.end() && isHexDigit(*(itr+1)) && isHexDigit(*(itr+2))) { @@ -543,7 +543,7 @@ static void computeHeadPieces return; } for(std::vector<SharedHandle<FileEntry> >::const_iterator fi = - fileEntries.begin(); fi != fileEntries.end(); ++fi) { + fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { if((*fi)->getLength() == 0) { continue; } @@ -566,7 +566,7 @@ static void computeTailPieces return; } for(std::vector<SharedHandle<FileEntry> >::const_iterator fi = - fileEntries.begin(); fi != fileEntries.end(); ++fi) { + fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { if((*fi)->getLength() == 0) { continue; } @@ -589,8 +589,8 @@ void parsePrioritizePieceRange std::vector<size_t> indexes; std::vector<std::string> parts; split(src, std::back_inserter(parts), ",", true); - for(std::vector<std::string>::const_iterator i = parts.begin(); - i != parts.end(); ++i) { + for(std::vector<std::string>::const_iterator i = parts.begin(), + eoi = parts.end(); i != eoi; ++i) { if((*i) == "head") { computeHeadPieces(indexes, fileEntries, pieceLength, defaultSize); } else if(util::startsWith(*i, "head=")) { @@ -632,7 +632,8 @@ static std::string trimBasename(const std::string& src) std::string iso8859ToUtf8(const std::string& src) { std::string dest; - for(std::string::const_iterator itr = src.begin(); itr != src.end(); ++itr) { + for(std::string::const_iterator itr = src.begin(), eoi = src.end(); + itr != eoi; ++itr) { unsigned char c = *itr; if(0xa0 <= c) { if(c <= 0xbf) { @@ -655,14 +656,14 @@ std::string getContentDispositionFilename(const std::string& header) std::string filename; std::vector<std::string> params; split(header, std::back_inserter(params), A2STR::SEMICOLON_C, true); - for(std::vector<std::string>::iterator i = params.begin(); - i != params.end(); ++i) { - std::string& param = *i; + for(std::vector<std::string>::const_iterator i = params.begin(), + eoi = params.end(); i != eoi; ++i) { + const std::string& param = *i; static const std::string keyName = "filename"; if(!startsWith(toLower(param), keyName) || param.size() == keyName.size()) { continue; } - std::string::iterator markeritr = param.begin()+keyName.size(); + std::string::const_iterator markeritr = param.begin()+keyName.size(); if(*markeritr == '*') { // See RFC2231 Section4 and draft-reschke-rfc2231-in-http. // Please note that this function doesn't do charset conversion @@ -683,8 +684,8 @@ std::string getContentDispositionFilename(const std::string& header) } bool bad = false; const std::string& charset = extValues[0]; - for(std::string::const_iterator j = charset.begin(); j != charset.end(); - ++j) { + for(std::string::const_iterator j = charset.begin(), eoi = charset.end(); + j != eoi; ++j) { // Since we first split parameter by ', we can safely assume // that ' is not included in charset. if(!inRFC2978MIMECharset(*j)) { @@ -697,7 +698,8 @@ std::string getContentDispositionFilename(const std::string& header) } bad = false; value = extValues[2]; - for(std::string::const_iterator j = value.begin(); j != value.end(); ++j){ + for(std::string::const_iterator j = value.begin(), eoi = value.end(); + j != eoi; ++j){ if(*j == '%') { if(j+1 != value.end() && isHexDigit(*(j+1)) && j+2 != value.end() && isHexDigit(*(j+2))) { @@ -909,7 +911,8 @@ bool isNumber(const std::string& what) if(what.empty()) { return false; } - for(std::string::const_iterator i = what.begin(); i != what.end(); ++i) { + for(std::string::const_iterator i = what.begin(), eoi = what.end(); + i != eoi; ++i) { if(!isDigit(*i)) { return false; } @@ -1040,7 +1043,8 @@ getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len) std::string htmlEscape(const std::string& src) { std::string dest; - for(std::string::const_iterator i = src.begin(); i != src.end(); ++i) { + for(std::string::const_iterator i = src.begin(), eoi = src.end(); + i != eoi; ++i) { char ch = *i; if(ch == '<') { dest += "<"; @@ -1168,7 +1172,7 @@ bool inPrivateAddress(const std::string& ipv4addr) bool detectDirTraversal(const std::string& s) { - for(std::string::const_iterator i = s.begin(); i != s.end(); ++i) { + for(std::string::const_iterator i = s.begin(), eoi = s.end(); i != eoi; ++i) { if(0x00 <= (*i) && (*i) <= 0x1f) { return true; } |
