summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/MessageBuilder.cpp
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
committerKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
commitc598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 (patch)
tree8b3431841d1f18e0b21fc69f9a286851007b15c7 /cpp/src/qpid/broker/MessageBuilder.cpp
parentacde3eb25b94333bc7772133fa24441e1771a67c (diff)
downloadqpid-python-c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3.tar.gz
Switched all regular PersistentMessage* and PersistentMessage& to intrusive_ptr<PersistentMessage>, so as to hook into the refcount for a message while it is in the store.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598440 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageBuilder.cpp')
-rw-r--r--cpp/src/qpid/broker/MessageBuilder.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/MessageBuilder.cpp b/cpp/src/qpid/broker/MessageBuilder.cpp
index a56c65333c..376a321d2d 100644
--- a/cpp/src/qpid/broker/MessageBuilder.cpp
+++ b/cpp/src/qpid/broker/MessageBuilder.cpp
@@ -49,7 +49,8 @@ void MessageBuilder::handle(AMQFrame& frame)
throw CommandInvalidException(QPID_MSG("Invalid frame sequence for message (state=" << state << ")"));
}
if (staging) {
- store->appendContent(*message, frame.castBody<AMQContentBody>()->getData());
+ intrusive_ptr<const PersistableMessage> cpmsg = boost::static_pointer_cast<const PersistableMessage>(message);
+ store->appendContent(cpmsg, frame.castBody<AMQContentBody>()->getData());
} else {
message->getFrames().append(frame);
//have we reached the staging limit? if so stage message and release content