diff options
Diffstat (limited to 'cpp/src/qpid/broker/Message.cpp')
-rw-r--r-- | cpp/src/qpid/broker/Message.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp index 64e66c4a30..6478383cb2 100644 --- a/cpp/src/qpid/broker/Message.cpp +++ b/cpp/src/qpid/broker/Message.cpp @@ -201,7 +201,11 @@ void Message::releaseContent(MessageStore* store) { if (!content.get() || content->size() > 0) { //set content to lazy loading mode (but only if there is stored content): - content = std::auto_ptr<Content>(new LazyLoadedContent(store, getPersistenceId(), expectedContentSize())); + + //Note: the LazyLoadedContent instance contains a raw pointer to the message, however it is + // then set as a member of that message so its lifetime is guaranteed to be no longer than + // that of the message itself + content = std::auto_ptr<Content>(new LazyLoadedContent(store, this, expectedContentSize())); } } |