diff --git a/ChangeLog b/ChangeLog index a2029b16..251691b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-10 Tatsuhiro Tsujikawa + + Use std::binary_search instead of std::find + * src/DefaultPieceStorage.cc + 2009-05-10 Tatsuhiro Tsujikawa Removed unnecessary BDE() call; leave them to implicit conversion. diff --git a/src/DefaultPieceStorage.cc b/src/DefaultPieceStorage.cc index 696a3613..971479fa 100644 --- a/src/DefaultPieceStorage.cc +++ b/src/DefaultPieceStorage.cc @@ -440,14 +440,13 @@ void DefaultPieceStorage::setFileFilter(const std::deque& filePaths void DefaultPieceStorage::setFileFilter(IntSequence seq) { std::deque fileIndexes = seq.flush(); - // TODO Is sorting necessary? std::sort(fileIndexes.begin(), fileIndexes.end()); fileIndexes.erase(std::unique(fileIndexes.begin(), fileIndexes.end()), fileIndexes.end()); std::deque filePaths; const FileEntries& entries = diskAdaptor->getFileEntries(); int32_t entriesSize = entries.size(); for(int32_t i = 0; i < entriesSize; i++) { - if(std::find(fileIndexes.begin(), fileIndexes.end(), i+1) != fileIndexes.end()) { + if(std::binary_search(fileIndexes.begin(), fileIndexes.end(), i+1)) { logger->debug("index=%d is %s", i+1, entries[i]->getPath().c_str()); filePaths.push_back(entries[i]->getPath()); }