Revision: 13607
Author:   [email protected]
Date:     Wed Feb  6 05:04:02 2013
Log:      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 [email protected]

BUGS=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12210033
Patch from Jonathan Liu <[email protected]>.
http://code.google.com/p/v8/source/detail?r=13607

Modified:
 /branches/bleeding_edge/src/platform-win32.cc

=======================================
--- /branches/bleeding_edge/src/platform-win32.cc       Wed Feb  6 02:59:50 2013
+++ /branches/bleeding_edge/src/platform-win32.cc       Wed Feb  6 05:04:02 2013
@@ -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 @@
 #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 @@

 #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

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to