diff options
Diffstat (limited to 'qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp')
-rw-r--r-- | qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp b/qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp index b5bea05eac..3f407c11f7 100644 --- a/qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp +++ b/qpid/cpp/src/qpid/broker/MessageHandlerImpl.cpp @@ -28,6 +28,7 @@ #include "BrokerAdapter.h" #include <boost/format.hpp> +#include <boost/cast.hpp> namespace qpid { namespace broker { @@ -159,9 +160,7 @@ MessageHandlerImpl::reject(uint16_t /*code*/, const string& /*text*/ ) void MessageHandlerImpl::transfer(const framing::AMQMethodBody& context) { - MessageTransferBody::shared_ptr transfer( - make_shared_ptr(new MessageTransferBody(static_cast<const MessageTransferBody&>(context)))); - + const MessageTransferBody* transfer = boost::polymorphic_downcast<const MessageTransferBody*>(&context); if (transfer->getBody().isInline()) { MessageMessage::shared_ptr message(new MessageMessage(&connection, transfer)); channel.handleInlineTransfer(message); |