Simplify secure API functions workaround for MinGW
If MINGW_HAS_SECURE_API is defined, the definitions of localtime_s, fopen_s, _vsnprintf_s, strncpy_s had to be renamed using #define so they would not conflict with definitions in the standard headers. A simpler way to handle this is to undefine MINGW_HAS_SECURE_API before including the standard headers. Contributed by net147@gmail.com BUGS= TEST= Review URL: https://chromiumcodereview.appspot.com/12210033 Patch from Jonathan Liu <net147@gmail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
4ccaefb097
commit
1e90596702
@ -27,6 +27,17 @@
|
||||
|
||||
// Platform specific code for Win32.
|
||||
|
||||
// Secure API functions are not available using MinGW with msvcrt.dll
|
||||
// on Windows XP. Make sure MINGW_HAS_SECURE_API is not defined to
|
||||
// disable definition of secure API functions in standard headers that
|
||||
// would conflict with our own implementation.
|
||||
#ifdef __MINGW32__
|
||||
#include <_mingw.h>
|
||||
#ifdef MINGW_HAS_SECURE_API
|
||||
#undef MINGW_HAS_SECURE_API
|
||||
#endif // MINGW_HAS_SECURE_API
|
||||
#endif // __MINGW32__
|
||||
|
||||
#define V8_WIN32_HEADERS_FULL
|
||||
#include "win32-headers.h"
|
||||
|
||||
@ -65,14 +76,6 @@ inline void MemoryBarrier() {
|
||||
#endif // __MINGW64_VERSION_MAJOR
|
||||
|
||||
|
||||
#ifdef MINGW_HAS_SECURE_API
|
||||
#define localtime_s v8_localtime_s
|
||||
#define fopen_s v8_fopen_s
|
||||
#define _vsnprintf_s v8_vsnprintf_s
|
||||
#define strncpy_s v8_strncpy_s
|
||||
#endif // MINGW_HAS_SECURE_API
|
||||
|
||||
|
||||
int localtime_s(tm* out_tm, const time_t* time) {
|
||||
tm* posix_local_time_struct = localtime(time);
|
||||
if (posix_local_time_struct == NULL) return 1;
|
||||
@ -818,10 +821,6 @@ void OS::StrNCpy(Vector<char> dest, const char* src, size_t n) {
|
||||
|
||||
#undef _TRUNCATE
|
||||
#undef STRUNCATE
|
||||
#undef localtime_s
|
||||
#undef fopen_s
|
||||
#undef _vsnprintf_s
|
||||
#undef strncpy_s
|
||||
|
||||
// We keep the lowest and highest addresses mapped as a quick way of
|
||||
// determining that pointers are outside the heap (used mostly in assertions
|
||||
|
Loading…
Reference in New Issue
Block a user