summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Message.h
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-08-20 13:58:20 +0000
committerTed Ross <tross@apache.org>2010-08-20 13:58:20 +0000
commit5269fc0e04984b2d196d5eaf96e206e034d21184 (patch)
tree2c5c273773ce707de712e7691a00003639c0f281 /cpp/bindings/qpid/dotnet/src/Message.h
parentfdfefb5e9721cb85d70a81928044f61b7f48ccf3 (diff)
downloadqpid-python-5269fc0e04984b2d196d5eaf96e206e034d21184.tar.gz
QPID-2798 - C++ Messaging Client .NET binding fails to clone managed objects correctly
Patch from Chuck Rolke git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@987510 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Message.h')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Message.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Message.h b/cpp/bindings/qpid/dotnet/src/Message.h
index c7f6092a40..cbe8cfc7ab 100644
--- a/cpp/bindings/qpid/dotnet/src/Message.h
+++ b/cpp/bindings/qpid/dotnet/src/Message.h
@@ -69,15 +69,15 @@ namespace Messaging {
// Create from byte array slice
Message(array<System::Byte> ^ bytes, int offset, int size);
- // Create from received message
- Message(::qpid::messaging::Message * msgp);
-
~Message();
!Message();
// Copy constructor
Message(const Message ^ message);
+ // unmanaged clone
+ Message(const ::qpid::messaging::Message & msgp);
+
// assignment operator
Message % operator=(const Message % rhs)
{
@@ -87,7 +87,8 @@ namespace Messaging {
}
else
{
- delete messagep;
+ if (NULL != messagep)
+ delete messagep;
messagep = new ::qpid::messaging::Message(
*(const_cast<Message %>(rhs).NativeMessage) );
}
@@ -117,7 +118,7 @@ namespace Messaging {
const ::qpid::messaging::Address & addrp =
messagep->::qpid::messaging::Message::getReplyTo();
- return gcnew Address(const_cast<::qpid::messaging::Address *>(&addrp));
+ return gcnew Address(addrp);
}
}
@@ -299,6 +300,7 @@ namespace Messaging {
gcnew System::Collections::Generic::Dictionary<
System::String^, System::Object^> ;
+
TypeTranslator::NativeToManaged(map, dict);
return dict;