Core/Dependencies: Update ACE to v6.1.4 (Windows only)
Tested in multiple configurations .diff with TC changes added
This commit is contained in:
+32
-100
@@ -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))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user