summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Message.cpp')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Message.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Message.cpp b/cpp/bindings/qpid/dotnet/src/Message.cpp
index 07a1026b21..fe7825134d 100644
--- a/cpp/bindings/qpid/dotnet/src/Message.cpp
+++ b/cpp/bindings/qpid/dotnet/src/Message.cpp
@@ -219,14 +219,20 @@ namespace Messaging {
// Destructor
Message::~Message()
{
- Cleanup();
+ this->!Message();
}
// Finalizer
Message::!Message()
{
- Cleanup();
+ msclr::lock lk(this);
+
+ if (NULL != messagep)
+ {
+ delete messagep;
+ messagep = NULL;
+ }
}
// Copy constructor
@@ -251,17 +257,6 @@ namespace Messaging {
}
}
- // Destroys kept object
- // TODO: add lock
- void Message::Cleanup()
- {
- if (NULL != messagep)
- {
- delete messagep;
- messagep = NULL;
- }
- }
-
// Property
void Message::SetProperty(System::String ^ name, System::Object ^ value)
{