summaryrefslogtreecommitdiff
path: root/TAO/tao/Managed_Types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Managed_Types.cpp')
-rw-r--r--TAO/tao/Managed_Types.cpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/TAO/tao/Managed_Types.cpp b/TAO/tao/Managed_Types.cpp
index 1334d4ac165..5c2b8ed152f 100644
--- a/TAO/tao/Managed_Types.cpp
+++ b/TAO/tao/Managed_Types.cpp
@@ -10,20 +10,12 @@ ACE_RCSID (tao,
Managed_Types,
"$Id$")
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
// assignment from CORBA::String_var makes a copy
TAO_String_Manager&
TAO_String_Manager::operator= (const CORBA::String_var &var)
{
- // Strongly exception safe by means of copy and non-throwing swap
- // technique.
- TAO_String_Manager tmp (var.in ());
-
- char * old_ptr = this->ptr_;
- this->ptr_ = tmp.ptr_;
- tmp.ptr_ = old_ptr;
-
+ CORBA::string_free (this->ptr_);
+ this->ptr_ = CORBA::string_dup (var.in ());
return *this;
}
@@ -46,14 +38,8 @@ TAO_SeqElem_String_Manager::operator= (const CORBA::String_var &var)
TAO_WString_Manager&
TAO_WString_Manager::operator= (const CORBA::WString_var &var)
{
- // Strongly exception safe by means of copy and non-throwing swap
- // technique.
- TAO_WString_Manager tmp (var.in ());
-
- CORBA::WChar * old_ptr = this->ptr_;
- this->ptr_ = tmp.ptr_;
- tmp.ptr_ = old_ptr;
-
+ CORBA::wstring_free (this->ptr_);
+ this->ptr_ = CORBA::wstring_dup (var.in ());
return *this;
}
@@ -69,5 +55,3 @@ TAO_SeqElem_WString_Manager::operator= (const CORBA::WString_var &var)
*this->ptr_ = CORBA::wstring_dup (var.in ());
return *this;
}
-
-TAO_END_VERSIONED_NAMESPACE_DECL