Core/Dependencies: Update ACE to v6.1.4 (Windows only)

Tested in multiple configurations
.diff with TC changes added
This commit is contained in:
Nay
2012-09-17 23:21:01 +01:00
parent 6ebc6b9a76
commit 2e21fa6b92
549 changed files with 28949 additions and 14408 deletions
+32 -100
View File
@@ -1,4 +1,4 @@
// $Id: ACE.cpp 92298 2010-10-21 11:15:17Z johnnyw $
// $Id: ACE.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/ACE.h"
@@ -25,10 +25,6 @@
#include "ace/OS_TLI.h"
#include "ace/Truncate.h"
#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
extern "C" int maxFiles;
#endif /* ACE_VXWORKS */
#if !defined (__ACE_INLINE__)
#include "ace/ACE.inl"
#endif /* __ACE_INLINE__ */
@@ -68,7 +64,7 @@ ACE::out_of_handles (int error)
#elif defined (HPUX)
// On HPUX, we need to check for EADDRNOTAVAIL also.
error == EADDRNOTAVAIL ||
#elif defined (linux)
#elif defined (ACE_LINUX)
// On linux, we need to check for ENOENT also.
error == ENOENT ||
// For RedHat5.2, need to check for EINVAL too.
@@ -2308,7 +2304,7 @@ ACE::format_hexdump (const char *buffer,
ACE_TEXT (" "));
++obuf;
}
textver[j] = ACE_OS::ace_isprint (c) ? c : '.';
textver[j] = ACE_OS::ace_isprint (c) ? c : u_char ('.');
}
textver[j] = 0;
@@ -2340,7 +2336,7 @@ ACE::format_hexdump (const char *buffer,
ACE_TEXT (" "));
++obuf;
}
textver[i] = ACE_OS::ace_isprint (c) ? c : '.';
textver[i] = ACE_OS::ace_isprint (c) ? c : u_char ('.');
}
for (i = size % 16; i < 16; i++)
@@ -2371,7 +2367,8 @@ ACE::format_hexdump (const char *buffer,
// Returns the current timestamp in the form
// "hour:minute:second:microsecond." The month, day, and year are
// also stored in the beginning of the date_and_time array.
// also stored in the beginning of the date_and_time array
// using ISO-8601 format.
ACE_TCHAR *
ACE::timestamp (ACE_TCHAR date_and_time[],
@@ -2386,7 +2383,10 @@ ACE::timestamp (ACE_TCHAR date_and_time[],
// Returns the given timestamp in the form
// "hour:minute:second:microsecond." The month, day, and year are
// also stored in the beginning of the date_and_time array.
// also stored in the beginning of the date_and_time array
// using ISO-8601 format.
// 012345678901234567890123456
// 2010-12-02 12:56:00.123456<nul>
ACE_TCHAR *
ACE::timestamp (const ACE_Time_Value& time_value,
@@ -2396,92 +2396,32 @@ ACE::timestamp (const ACE_Time_Value& time_value,
{
//ACE_TRACE ("ACE::timestamp");
if (date_and_timelen < 35)
// This magic number is from the formatting statement
// farther down this routine.
if (date_and_timelen < 27)
{
errno = EINVAL;
return 0;
}
#if defined (WIN32)
if (time_value == ACE_Time_Value::zero)
{
// Emulate Unix. Win32 does NOT support all the UNIX versions
// below, so DO we need this ifdef.
static const ACE_TCHAR *day_of_week_name[] =
{
ACE_TEXT ("Sun"),
ACE_TEXT ("Mon"),
ACE_TEXT ("Tue"),
ACE_TEXT ("Wed"),
ACE_TEXT ("Thu"),
ACE_TEXT ("Fri"),
ACE_TEXT ("Sat")
};
static const ACE_TCHAR *month_name[] =
{
ACE_TEXT ("Jan"),
ACE_TEXT ("Feb"),
ACE_TEXT ("Mar"),
ACE_TEXT ("Apr"),
ACE_TEXT ("May"),
ACE_TEXT ("Jun"),
ACE_TEXT ("Jul"),
ACE_TEXT ("Aug"),
ACE_TEXT ("Sep"),
ACE_TEXT ("Oct"),
ACE_TEXT ("Nov"),
ACE_TEXT ("Dec")
};
SYSTEMTIME local;
::GetLocalTime (&local);
ACE_OS::sprintf (date_and_time,
ACE_TEXT ("%3s %3s %2d %04d %02d:%02d:%02d.%06d"),
day_of_week_name[local.wDayOfWeek],
month_name[local.wMonth - 1],
(int) local.wDay,
(int) local.wYear,
(int) local.wHour,
(int) local.wMinute,
(int) local.wSecond,
(int) (local.wMilliseconds * 1000));
return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
}
#endif /* WIN32 */
ACE_TCHAR timebuf[26]; // This magic number is based on the ctime(3c) man page.
ACE_Time_Value cur_time =
(time_value == ACE_Time_Value::zero) ?
ACE_Time_Value (ACE_OS::gettimeofday ()) : time_value;
time_t secs = cur_time.sec ();
ACE_OS::ctime_r (&secs,
timebuf,
sizeof timebuf / sizeof (ACE_TCHAR));
// date_and_timelen > sizeof timebuf!
ACE_OS::strsncpy (date_and_time,
timebuf,
date_and_timelen);
ACE_TCHAR yeartmp[5];
ACE_OS::strsncpy (yeartmp,
&date_and_time[20],
5);
ACE_TCHAR timetmp[9];
ACE_OS::strsncpy (timetmp,
&date_and_time[11],
9);
ACE_OS::sprintf (&date_and_time[11],
# if defined (ACE_USES_WCHAR)
ACE_TEXT ("%ls %ls.%06ld"),
# else
ACE_TEXT ("%s %s.%06ld"),
# endif /* ACE_USES_WCHAR */
yeartmp,
timetmp,
cur_time.usec ());
date_and_time[33] = '\0';
return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
struct tm tms;
ACE_OS::localtime_r (&secs, &tms);
ACE_OS::snprintf (date_and_time,
date_and_timelen,
ACE_TEXT ("%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d.%06ld"),
tms.tm_year + 1900,
tms.tm_mon + 1,
tms.tm_mday,
tms.tm_hour,
tms.tm_min,
tms.tm_sec,
static_cast<long> (cur_time.usec()));
date_and_time[date_and_timelen - 1] = '\0';
return &date_and_time[10 + (return_pointer_to_first_digit != 0)];
}
// This function rounds the request to a multiple of the page size.
@@ -2866,9 +2806,7 @@ ACE::max_handles (void)
#endif /* RLIMIT_NOFILE && !ACE_LACKS_RLIMIT */
#if defined (_SC_OPEN_MAX)
return ACE_OS::sysconf (_SC_OPEN_MAX);
#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
return maxFiles;
return static_cast<int> (ACE_OS::sysconf (_SC_OPEN_MAX));
#elif defined (FD_SETSIZE)
return FD_SETSIZE;
#else
@@ -2915,7 +2853,7 @@ ACE::set_handle_limit (int new_limit,
#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
rl.rlim_cur = new_limit;
return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl);
#elif defined (ACE_LACKS_RLIMIT_NOFILE)
#elif !defined (RLIMIT_NOFILE)
return 0;
#else
// Must return EINVAL errno.
@@ -3342,10 +3280,7 @@ ACE::strnew (const char *s)
ACE_NEW_RETURN (t,
char [ACE_OS::strlen (s) + 1],
0);
if (t == 0)
return 0;
else
return ACE_OS::strcpy (t, s);
return ACE_OS::strcpy (t, s);
}
#if defined (ACE_HAS_WCHAR)
@@ -3358,10 +3293,7 @@ ACE::strnew (const wchar_t *s)
ACE_NEW_RETURN (t,
wchar_t[ACE_OS::strlen (s) + 1],
0);
if (t == 0)
return 0;
else
return ACE_OS::strcpy (t, s);
return ACE_OS::strcpy (t, s);
}
#endif /* ACE_HAS_WCHAR */
@@ -3400,7 +3332,7 @@ namespace
// characters are allowed as the range endpoints. These characters
// are the same values in both signed and unsigned chars so we
// don't have to account for any "pathological cases."
for (char range = p[-1] + 1; range <= p[1]; ++range)
for (char range = static_cast<char> (p[-1] + 1); range <= p[1]; ++range)
{
if (equal_char (s, range, case_sensitive))
{