diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-11-11 07:33:43 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-11-11 07:33:43 +0000 |
| commit | bc98e39fe5ed30c03ba3af36f46f74e10f03e635 (patch) | |
| tree | 15b13a4dd63c0f5a3892c80aba7d0a4d72da65f4 /src/PollEventPoll.cc | |
| parent | bcf4593bda20504f026e359413f226519cbb8d37 (diff) | |
2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
To match the behavior of friend operator functions in
SharedHandle.h to std::tr1::shared_ptr, we intentionally broke
these functions and modified code so that our code does not depend
on old behavior.
* src/AbstractCommand.cc
* src/DHTAbstractNodeLookupTask.h
* src/DHTBucket.cc
* src/DHTMessageReceiver.cc
* src/DHTNodeLookupEntry.cc
* src/DHTRoutingTable.cc
* src/DefaultBtRequestFactory.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/DownloadContext.cc
* src/EpollEventPoll.cc
* src/Event.h
* src/HttpConnection.cc
* src/KqueueEventPoll.cc
* src/MultiDiskAdaptor.cc
* src/PeerAbstractCommand.cc
* src/PieceStatMan.cc
* src/PollEventPoll.cc
* src/PortEventPoll.cc
* src/SegmentMan.cc
* src/SelectEventPoll.cc
* src/SelectEventPoll.h
* src/ServerStatMan.cc
* src/SharedHandle.h
* src/UnknownLengthPieceStorage.cc
* src/a2functional.h
* src/option_processing.cc
* src/version_usage.cc
* test/BNodeTest.cc
* test/DHTAnnouncePeerMessageTest.cc
* test/DHTBucketTest.cc
* test/DHTFindNodeMessageTest.cc
* test/DHTGetPeersMessageTest.cc
* test/DHTIDCloserTest.cc
* test/DHTMessageFactoryImplTest.cc
* test/DHTPingMessageTest.cc
* test/DefaultBtRequestFactoryTest.cc
* test/DefaultPeerStorageTest.cc
* test/SequentialPickerTest.cc
* test/SingletonHolderTest.cc
Diffstat (limited to 'src/PollEventPoll.cc')
| -rw-r--r-- | src/PollEventPoll.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/PollEventPoll.cc b/src/PollEventPoll.cc index eaa174f1..1af0771d 100644 --- a/src/PollEventPoll.cc +++ b/src/PollEventPoll.cc @@ -41,6 +41,7 @@ #include "Command.h" #include "LogFactory.h" #include "Logger.h" +#include "a2functional.h" namespace aria2 { @@ -97,8 +98,9 @@ void PollEventPoll::poll(const struct timeval& tv) if(first->revents) { se->setSocket(first->fd); std::deque<SharedHandle<KSocketEntry> >::iterator itr = - std::lower_bound(socketEntries_.begin(), socketEntries_.end(), se); - if(itr != socketEntries_.end() && (*itr) == se) { + std::lower_bound(socketEntries_.begin(), socketEntries_.end(), se, + DerefLess<SharedHandle<KSocketEntry> >()); + if(itr != socketEntries_.end() && *(*itr) == *se) { (*itr)->processEvents(first->revents); } else { if(logger_->debug()) { @@ -150,8 +152,9 @@ bool PollEventPoll::addEvents { SharedHandle<KSocketEntry> socketEntry(new KSocketEntry(socket)); std::deque<SharedHandle<KSocketEntry> >::iterator i = - std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry); - if(i != socketEntries_.end() && (*i) == socketEntry) { + std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry, + DerefLess<SharedHandle<KSocketEntry> >()); + if(i != socketEntries_.end() && *(*i) == *socketEntry) { event.addSelf(*i); for(struct pollfd* first = pollfds_, *last = pollfds_+pollfdNum_; first != last; ++first) { @@ -197,8 +200,9 @@ bool PollEventPoll::deleteEvents { SharedHandle<KSocketEntry> socketEntry(new KSocketEntry(socket)); std::deque<SharedHandle<KSocketEntry> >::iterator i = - std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry); - if(i != socketEntries_.end() && (*i) == socketEntry) { + std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry, + DerefLess<SharedHandle<KSocketEntry> >()); + if(i != socketEntries_.end() && *(*i) == *socketEntry) { event.removeSelf(*i); for(struct pollfd* first = pollfds_, *last = pollfds_+pollfdNum_; first != last; ++first) { @@ -246,7 +250,8 @@ bool PollEventPoll::addNameResolver SharedHandle<KAsyncNameResolverEntry> entry (new KAsyncNameResolverEntry(resolver, command)); std::deque<SharedHandle<KAsyncNameResolverEntry> >::iterator itr = - std::find(nameResolverEntries_.begin(), nameResolverEntries_.end(), entry); + std::find_if(nameResolverEntries_.begin(), nameResolverEntries_.end(), + derefEqual(entry)); if(itr == nameResolverEntries_.end()) { nameResolverEntries_.push_back(entry); entry->addSocketEvents(this); @@ -262,7 +267,8 @@ bool PollEventPoll::deleteNameResolver SharedHandle<KAsyncNameResolverEntry> entry (new KAsyncNameResolverEntry(resolver, command)); std::deque<SharedHandle<KAsyncNameResolverEntry> >::iterator itr = - std::find(nameResolverEntries_.begin(), nameResolverEntries_.end(), entry); + std::find_if(nameResolverEntries_.begin(), nameResolverEntries_.end(), + derefEqual(entry)); if(itr == nameResolverEntries_.end()) { return false; } else { |
