diff --git a/src/DownloadContext.cc b/src/DownloadContext.cc index 17cc53e6..3a47ed53 100644 --- a/src/DownloadContext.cc +++ b/src/DownloadContext.cc @@ -136,21 +136,18 @@ void DownloadContext::setFileFilter(SegList& sgl) return; } assert(sgl.peek() >= 1); + size_t len = fileEntries_.size(); size_t i = 0; - while(i < fileEntries_.size() && sgl.hasNext()) { + for(; i < len && sgl.hasNext(); ++i) { size_t idx = sgl.peek()-1; if(i == idx) { fileEntries_[i]->setRequested(true); - ++i; sgl.next(); } else if(i < idx) { fileEntries_[i]->setRequested(false); - ++i; - } else { - sgl.next(); } } - for(; i < fileEntries_.size(); ++i) { + for(; i < len; ++i) { fileEntries_[i]->setRequested(false); } }