]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - os-win32/stdint.h
JavaScriptCore-1097.3.tar.gz
[apple/javascriptcore.git] / os-win32 / stdint.h
index 48ae474d25c48ef3679c351ff9afe0da35e96ae9..b5dff56607cfb49b9295c786c8f52ddcad0d4a8d 100644 (file)
 
 #include <wtf/Platform.h>
 
-/* This file emulates enough of stdint.h on Windows to make JavaScriptCore and WebCore compile. */
+/* This file emulates enough of stdint.h on Windows to make JavaScriptCore and WebCore
+   compile using MSVC which does not ship with the stdint.h header. */
 
-#if !PLATFORM(WIN_OS)
-#error "This stdint.h file should only be compiled under Windows"
+#if !COMPILER(MSVC)
+#error "This stdint.h file should only be compiled with MSVC"
 #endif
 
+#include <limits.h>
+
 typedef unsigned char uint8_t;
 typedef signed char int8_t;
 typedef unsigned short uint16_t;
@@ -38,6 +41,16 @@ typedef int int32_t;
 typedef __int64 int64_t;
 typedef unsigned __int64 uint64_t;
 
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+#ifndef SIZE_MAX
+#ifdef _WIN64
+#define SIZE_MAX  _UI64_MAX
+#else
+#define SIZE_MAX  _UI32_MAX
+#endif
+#endif
+#endif
+
 #ifndef CASSERT
 #define CASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1];
 #endif
@@ -48,7 +61,7 @@ CASSERT(sizeof(int16_t) == 2, int16_t_is_two_bytes)
 CASSERT(sizeof(uint16_t) == 2, uint16_t_is_two_bytes)
 CASSERT(sizeof(int32_t) == 4, int32_t_is_four_bytes)
 CASSERT(sizeof(uint32_t) == 4, uint32_t_is_four_bytes)
-CASSERT(sizeof(int64_t) == 8, int64_t_is_four_bytes)
-CASSERT(sizeof(uint64_t) == 8, uint64_t_is_four_bytes)
+CASSERT(sizeof(int64_t) == 8, int64_t_is_eight_bytes)
+CASSERT(sizeof(uint64_t) == 8, uint64_t_is_eight_bytes)
 
 #endif