diff --git a/ChangeLog b/ChangeLog index 742d7b47..a33541c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced dynamic_pointer_cast with static_pointer_cast + * src/DHTSetup.cc + * src/DefaultBtMessageReceiver.cc + * src/SharedHandle.h + 2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> Reverted changes which deleted peerConnection from diff --git a/src/DHTSetup.cc b/src/DHTSetup.cc index 045f28e1..3c21fd78 100644 --- a/src/DHTSetup.cc +++ b/src/DHTSetup.cc @@ -199,7 +199,8 @@ void DHTSetup::setup(std::vector<Command*>& commands, DownloadEngine* e) deserializer.getSerializedTime(). difference() >= DHT_BUCKET_REFRESH_INTERVAL) { SharedHandle<DHTBucketRefreshTask> task - (dynamic_pointer_cast<DHTBucketRefreshTask>(taskFactory->createBucketRefreshTask())); + (static_pointer_cast<DHTBucketRefreshTask> + (taskFactory->createBucketRefreshTask())); task->setForceRefresh(true); taskQueue->addPeriodicTask1(task); } diff --git a/src/DefaultBtMessageReceiver.cc b/src/DefaultBtMessageReceiver.cc index c03b6237..15ce0bf9 100644 --- a/src/DefaultBtMessageReceiver.cc +++ b/src/DefaultBtMessageReceiver.cc @@ -103,7 +103,7 @@ BtMessageHandle DefaultBtMessageReceiver::receiveMessage() { msg->validate(); if(msg->getId() == BtPieceMessage::ID) { SharedHandle<BtPieceMessage> piecemsg = - dynamic_pointer_cast<BtPieceMessage>(msg); + static_pointer_cast<BtPieceMessage>(msg); piecemsg->setRawMessage(_peerConnection->detachBuffer()); } return msg; diff --git a/src/SharedHandle.h b/src/SharedHandle.h index 39d2254a..c2ebb450 100644 --- a/src/SharedHandle.h +++ b/src/SharedHandle.h @@ -267,6 +267,12 @@ dynamic_pointer_cast(const SharedHandle<S>& t) { } } +template<typename T, typename S> +SharedHandle<T> +static_pointer_cast(const SharedHandle<S>& t) { + return SharedHandle<T>(t, static_cast<T*>(t.get())); +} + template<typename T> std::ostream& operator<<(std::ostream& o, const SharedHandle<T>& sp) { o << *sp._obj;