diff options
Diffstat (limited to 'TAO/tao/Managed_Types.i')
-rw-r--r-- | TAO/tao/Managed_Types.i | 61 |
1 files changed, 13 insertions, 48 deletions
diff --git a/TAO/tao/Managed_Types.i b/TAO/tao/Managed_Types.i index aa03deb7c56..73f66c7cdf6 100644 --- a/TAO/tao/Managed_Types.i +++ b/TAO/tao/Managed_Types.i @@ -1,5 +1,4 @@ -// -*- C++ -*- -// +/* -*- C++ -*- */ // $Id$ // ============================================================================ @@ -17,8 +16,6 @@ // **************************************************************** -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - // default CTOR initializes to empty string ACE_INLINE TAO_String_Manager::TAO_String_Manager (void) @@ -33,12 +30,6 @@ TAO_String_Manager::TAO_String_Manager (const TAO_String_Manager &rhs) { } -ACE_INLINE -TAO_String_Manager::TAO_String_Manager (const char *s) - : ptr_ (CORBA::string_dup (s)) -{ -} - // destructor ACE_INLINE TAO_String_Manager::~TAO_String_Manager (void) @@ -50,14 +41,11 @@ TAO_String_Manager::~TAO_String_Manager (void) ACE_INLINE TAO_String_Manager& TAO_String_Manager::operator= (const TAO_String_Manager &rhs) { - // Strongly exception safe by means of copy and non-throwing swap - // technique. - TAO_String_Manager tmp (rhs); - - char * old_ptr = this->ptr_; - this->ptr_ = tmp.ptr_; - tmp.ptr_ = old_ptr; + if (this == &rhs) + return *this; + CORBA::string_free (this->ptr_); + this->ptr_ = CORBA::string_dup (rhs.ptr_); return *this; } @@ -65,14 +53,8 @@ TAO_String_Manager::operator= (const TAO_String_Manager &rhs) ACE_INLINE TAO_String_Manager & TAO_String_Manager::operator= (const char * p) { - // Strongly exception safe by means of copy and non-throwing swap - // technique. - TAO_String_Manager tmp (p); - - char * old_ptr = this->ptr_; - this->ptr_ = tmp.ptr_; - tmp.ptr_ = old_ptr; - + CORBA::string_free (this->ptr_); + this->ptr_ = CORBA::string_dup (p); return *this; } @@ -226,12 +208,6 @@ TAO_WString_Manager::TAO_WString_Manager (const TAO_WString_Manager &rhs) { } -ACE_INLINE -TAO_WString_Manager::TAO_WString_Manager (const CORBA::WChar *ws) - : ptr_ (CORBA::wstring_dup (ws)) -{ -} - // destructor ACE_INLINE TAO_WString_Manager::~TAO_WString_Manager (void) @@ -243,14 +219,11 @@ TAO_WString_Manager::~TAO_WString_Manager (void) ACE_INLINE TAO_WString_Manager& TAO_WString_Manager::operator= (const TAO_WString_Manager &rhs) { - // Strongly exception safe by means of copy and non-throwing swap - // technique. - TAO_WString_Manager tmp (rhs); - - CORBA::WChar * old_ptr = this->ptr_; - this->ptr_ = tmp.ptr_; - tmp.ptr_ = old_ptr; + if (this == &rhs) + return *this; + CORBA::wstring_free (this->ptr_); + this->ptr_ = CORBA::wstring_dup (rhs.ptr_); return *this; } @@ -258,14 +231,8 @@ TAO_WString_Manager::operator= (const TAO_WString_Manager &rhs) ACE_INLINE TAO_WString_Manager & TAO_WString_Manager::operator= (const CORBA::WChar * p) { - // Strongly exception safe by means of copy and non-throwing swap - // technique. - TAO_WString_Manager tmp (p); - - CORBA::WChar * old_ptr = this->ptr_; - this->ptr_ = tmp.ptr_; - tmp.ptr_ = old_ptr; - + CORBA::wstring_free (this->ptr_); + this->ptr_ = CORBA::wstring_dup (p); return *this; } @@ -403,5 +370,3 @@ TAO_SeqElem_WString_Manager::_retn (void) *this->ptr_ = 0; return temp; } - -TAO_END_VERSIONED_NAMESPACE_DECL |