summaryrefslogtreecommitdiff
path: root/TAO/tao/CORBA_String.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/CORBA_String.cpp')
-rw-r--r--TAO/tao/CORBA_String.cpp72
1 files changed, 25 insertions, 47 deletions
diff --git a/TAO/tao/CORBA_String.cpp b/TAO/tao/CORBA_String.cpp
index 583be67aded..6c49706b60b 100644
--- a/TAO/tao/CORBA_String.cpp
+++ b/TAO/tao/CORBA_String.cpp
@@ -1,5 +1,5 @@
-#include "tao/CORBA_String.h"
-#include "tao/Managed_Types.h"
+#include "CORBA_String.h"
+#include "Managed_Types.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_wchar.h"
@@ -16,8 +16,6 @@ ACE_RCSID (tao,
CORBA_String,
"$Id$")
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
char *
CORBA::string_dup (const char *str)
{
@@ -26,84 +24,66 @@ CORBA::string_dup (const char *str)
errno = EINVAL;
return 0;
}
+ return ACE::String_Conversion::Convert_Out< char >( str ).c_str();
+}
- const size_t len = ACE_OS::strlen (str);
-
- // This allocates an extra byte for the '\0';
- char * copy = CORBA::string_alloc (static_cast<CORBA::ULong> (len));
-
- // The memcpy() below assumes that the destination is a valid buffer.
- if (copy == 0)
+char *
+CORBA::string_dup (const WChar *str)
+{
+ if (!str)
{
+ errno = EINVAL;
return 0;
}
-
- ACE_OS::memcpy (copy,
- str,
- len + 1);
- return copy;
+ return ACE::String_Conversion::Convert_Out< char >( str ).c_str();
}
char *
CORBA::string_alloc (CORBA::ULong len)
{
- // Allocate 1 + strlen to accomodate the null terminating character.
-
- char *s = 0;
- ACE_NEW_RETURN (s,
- char[size_t (len + 1)],
- 0);
-
- s[0]= '\0';
-
- return s;
+ return ACE::String_Conversion::Allocator_cpp< char >().alloc( len );
}
void
CORBA::string_free (char *str)
{
- delete [] str;
+ ACE::String_Conversion::Allocator_cpp< char >().free( str );
}
// ****************************************************************
CORBA::WChar*
-CORBA::wstring_dup (const WChar *const str)
+CORBA::wstring_dup (const WChar * str)
{
if (!str)
{
errno = EINVAL;
return 0;
}
+ return ACE::String_Conversion::Convert_Out< WChar >( str ).c_str();
+}
- CORBA::WChar* retval =
- CORBA::wstring_alloc (static_cast <CORBA::ULong> (ACE_OS::strlen (str)));
-
- // The wscpy() below assumes that the destination is a valid buffer.
- if (retval == 0)
+CORBA::WChar*
+CORBA::wstring_dup (const char *str)
+{
+ if (!str)
{
+ errno = EINVAL;
return 0;
}
-
- return ACE_OS::wscpy (retval,
- str);
+ return ACE::String_Conversion::Convert_Out< WChar >( str ).c_str();
}
CORBA::WChar*
CORBA::wstring_alloc (CORBA::ULong len)
{
- CORBA::WChar *s = 0;
- ACE_NEW_RETURN (s,
- CORBA::WChar [(size_t) (len + 1)],
- 0);
-
- return s;
+ return ACE::String_Conversion::Allocator_cpp< WChar >().alloc( len );
}
void
-CORBA::wstring_free (CORBA::WChar *const str)
+CORBA::wstring_free (CORBA::WChar * str)
{
- delete [] str;
+ ACE::String_Conversion::Allocator_cpp< WChar >().free( str );
}
// ****************************************************************
@@ -275,7 +255,7 @@ operator>> (istream &is, CORBA::String_out &so)
ostream &
operator<< (ostream &os, const CORBA::WString_var &wsv)
{
- const CORBA::ULong len =
+ const CORBA::ULong len =
static_cast <CORBA::ULong> (ACE_OS::strlen (wsv.in ()));
for (CORBA::ULong i = 0; i < len; ++i)
@@ -351,5 +331,3 @@ operator>> (istream &is, CORBA::WString_out &wso)
}
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
-
-TAO_END_VERSIONED_NAMESPACE_DECL