summaryrefslogtreecommitdiff
path: root/TAO/tao/Managed_Types.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Managed_Types.i')
-rw-r--r--TAO/tao/Managed_Types.i31
1 files changed, 26 insertions, 5 deletions
diff --git a/TAO/tao/Managed_Types.i b/TAO/tao/Managed_Types.i
index dc5eda08f2e..88aac12835e 100644
--- a/TAO/tao/Managed_Types.i
+++ b/TAO/tao/Managed_Types.i
@@ -19,7 +19,7 @@
// default CTOR initializes to empty string
ACE_INLINE
TAO_String_Manager::TAO_String_Manager (void)
- : ptr_ (0) // @@ CORBA::string_dup (L""))
+ : ptr_ (CORBA::string_dup (""))
{
}
@@ -192,12 +192,13 @@ TAO_SeqElem_String_Manager::_retn (void)
return temp;
}
+#if 0 /* To be included once we have support for WString_var */
// ****************************************************************
// default CTOR initializes to empty string
ACE_INLINE
TAO_WString_Manager::TAO_WString_Manager (void)
- : ptr_ (0) // @@ TODO CORBA::wstring_dup (""))
+ : ptr_ (CORBA::wstring_dup (""))
{
}
@@ -227,6 +228,15 @@ TAO_WString_Manager::operator= (const TAO_WString_Manager &rhs)
return *this;
}
+// assignment from CORBA::String_var makes a copy
+ACE_INLINE TAO_WString_Manager&
+TAO_WString_Manager::operator= (const CORBA::String_var &var)
+{
+ CORBA::string_free (this->ptr_);
+ this->ptr_ = CORBA::wstring_dup (var.in ());
+ return *this;
+}
+
// assignment from const CORBA::WChar* makes a copy
ACE_INLINE TAO_WString_Manager &
TAO_WString_Manager::operator= (const CORBA::WChar * p)
@@ -282,9 +292,8 @@ TAO_WString_Manager::_retn (void)
// ****************************************************************
ACE_INLINE
-TAO_SeqElem_WString_Manager::
- TAO_SeqElem_WString_Manager (CORBA::WChar **buffer,
- CORBA::Boolean release)
+TAO_SeqElem_WString_Manager::TAO_SeqElem_WString_Manager (CORBA::WChar **buffer,
+ CORBA::Boolean release)
: ptr_ (buffer),
release_ (release)
{
@@ -308,6 +317,16 @@ TAO_SeqElem_WString_Manager::operator= (const TAO_SeqElem_WString_Manager &rhs)
return *this;
}
+// assignment from String_var
+ACE_INLINE TAO_SeqElem_WString_Manager&
+TAO_SeqElem_WString_Manager::operator= (const CORBA::wstring_var &var)
+{
+ if (this->release_)
+ CORBA::wstring_free (*this->ptr_);
+ *this->ptr_ = CORBA::wstring_dup (var.in ());
+ return *this;
+}
+
// assignment from const CORBA::WChar* will make copy
ACE_INLINE TAO_SeqElem_WString_Manager &
TAO_SeqElem_WString_Manager::operator= (const CORBA::WChar *p)
@@ -361,3 +380,5 @@ TAO_SeqElem_WString_Manager::_retn (void)
*this->ptr_ = 0;
return temp;
}
+
+#endif /* 0 */