summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-10-26 10:41:56 (GMT)
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-10-26 10:41:56 (GMT)
commit968f7c0e65a293a7d7b9a87601e853894d9794ed (patch)
tree3a86b71dd69cf4b759bb20b62c18cfeb02a28ef0 /src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp
parent3481db791c3b48e28f1a9531b247adf6562edb71 (diff)
parente2ef97128c006ac2a5c99c67bb54eebaa3b45720 (diff)
downloadQt-968f7c0e65a293a7d7b9a87601e853894d9794ed.zip
Qt-968f7c0e65a293a7d7b9a87601e853894d9794ed.tar.gz
Qt-968f7c0e65a293a7d7b9a87601e853894d9794ed.tar.bz2
Merge branch '4.6' into 4.6-platform
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp
index 0e6e208..52fb130 100644
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp
@@ -82,6 +82,23 @@ double randomNumber()
return static_cast<double>(fullRandom)/static_cast<double>(1LL << 53);
#elif PLATFORM(WINCE)
return genrand_res53();
+#elif PLATFORM(WIN_OS)
+ uint32_t part1 = rand() & (RAND_MAX - 1);
+ uint32_t part2 = rand() & (RAND_MAX - 1);
+ uint32_t part3 = rand() & (RAND_MAX - 1);
+ uint32_t part4 = rand() & (RAND_MAX - 1);
+ // rand only provides 15 bits on Win32
+ uint64_t fullRandom = part1;
+ fullRandom <<= 15;
+ fullRandom |= part2;
+ fullRandom <<= 15;
+ fullRandom |= part3;
+ fullRandom <<= 15;
+ fullRandom |= part4;
+
+ // Mask off the low 53bits
+ fullRandom &= (1LL << 53) - 1;
+ return static_cast<double>(fullRandom)/static_cast<double>(1LL << 53);
#else
uint32_t part1 = rand() & (RAND_MAX - 1);
uint32_t part2 = rand() & (RAND_MAX - 1);