From bc98e39fe5ed30c03ba3af36f46f74e10f03e635 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 11 Nov 2010 07:33:43 +0000 Subject: 2010-11-11 Tatsuhiro Tsujikawa 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 --- src/SelectEventPoll.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/SelectEventPoll.cc') diff --git a/src/SelectEventPoll.cc b/src/SelectEventPoll.cc index 473091e3..4297b55e 100644 --- a/src/SelectEventPoll.cc +++ b/src/SelectEventPoll.cc @@ -44,6 +44,7 @@ #include "Command.h" #include "LogFactory.h" #include "Logger.h" +#include "a2functional.h" namespace aria2 { @@ -278,8 +279,9 @@ bool SelectEventPoll::addEvents(sock_t socket, Command* command, { SharedHandle socketEntry(new SocketEntry(socket)); std::deque >::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 >()); + if(i != socketEntries_.end() && *(*i) == *socketEntry) { (*i)->addCommandEvent(command, events); } else { socketEntries_.insert(i, socketEntry); @@ -294,8 +296,9 @@ bool SelectEventPoll::deleteEvents(sock_t socket, Command* command, { SharedHandle socketEntry(new SocketEntry(socket)); std::deque >::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 >()); + if(i != socketEntries_.end() && *(*i) == *socketEntry) { (*i)->removeCommandEvent(command, events); if((*i)->eventEmpty()) { socketEntries_.erase(i); @@ -317,7 +320,8 @@ bool SelectEventPoll::addNameResolver SharedHandle entry (new AsyncNameResolverEntry(resolver, command)); std::deque >::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); return true; @@ -332,7 +336,8 @@ bool SelectEventPoll::deleteNameResolver SharedHandle entry (new AsyncNameResolverEntry(resolver, command)); std::deque >::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 { -- cgit