diff options
Diffstat (limited to 'cpp/src/IceUtil/Shared.cpp')
-rwxr-xr-x | cpp/src/IceUtil/Shared.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/IceUtil/Shared.cpp b/cpp/src/IceUtil/Shared.cpp index ba73cc7d3a3..22387627154 100755 --- a/cpp/src/IceUtil/Shared.cpp +++ b/cpp/src/IceUtil/Shared.cpp @@ -17,7 +17,9 @@ IceUtil::SimpleShared::SimpleShared() : {
}
-IceUtil::SimpleShared::~SimpleShared()
+IceUtil::SimpleShared::SimpleShared(const SimpleShared&) :
+ _ref(0),
+ _noDelete(false)
{
}
@@ -32,8 +34,15 @@ IceUtil::Shared::Shared() : #endif
}
-IceUtil::Shared::~Shared()
+IceUtil::Shared::Shared(const Shared&) :
+#ifndef ICE_HAS_ATOMIC_FUNCTIONS
+ _ref(0),
+#endif
+ _noDelete(false)
{
+#ifdef ICE_HAS_ATOMIC_FUNCTIONS
+ ice_atomic_set(&_ref, 0);
+#endif
}
int
|