summaryrefslogtreecommitdiff
path: root/src/PortEventPoll.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 07:33:43 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 07:33:43 +0000
commitbc98e39fe5ed30c03ba3af36f46f74e10f03e635 (patch)
tree15b13a4dd63c0f5a3892c80aba7d0a4d72da65f4 /src/PortEventPoll.cc
parentbcf4593bda20504f026e359413f226519cbb8d37 (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/PortEventPoll.cc')
-rw-r--r--src/PortEventPoll.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/PortEventPoll.cc b/src/PortEventPoll.cc
index cb3757cd..363c619f 100644
--- a/src/PortEventPoll.cc
+++ b/src/PortEventPoll.cc
@@ -173,10 +173,11 @@ bool PortEventPoll::addEvents(sock_t socket,
{
SharedHandle<KSocketEntry> socketEntry(new KSocketEntry(socket));
std::deque<SharedHandle<KSocketEntry> >::iterator i =
- std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry);
+ std::lower_bound(socketEntries_.begin(), socketEntries_.end(), socketEntry,
+ DerefLess<SharedHandle<KSocketEntry> >());
int r = 0;
int errNum = 0;
- if(i != socketEntries_.end() && (*i) == socketEntry) {
+ if(i != socketEntries_.end() && *(*i) == *socketEntry) {
event.addSelf(*i);
A2PortEvent pv = (*i)->getEvents();
r = port_associate(port_, PORT_SOURCE_FD, (*i)->getSocket(),
@@ -226,8 +227,9 @@ bool PortEventPoll::deleteEvents(sock_t socket,
{
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);
int r = 0;
int errNum = 0;
@@ -280,7 +282,8 @@ bool PortEventPoll::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);
@@ -296,7 +299,8 @@ bool PortEventPoll::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 {