2009-02-12 Geoffrey Garen <ggaren@apple.com>
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Feb 2009 21:56:13 +0000 (21:56 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Feb 2009 21:56:13 +0000 (21:56 +0000)
        Reviewed by Sam Weinig.

        Fixed <rdar://problem/6582048>.

        * wtf/RandomNumber.cpp:
        (WTF::randomNumber): Make only one call to the random number generator
        on platforms where the generator is cryptographically secure. The value
        of randomness over and above cryptographically secure randomness is not
        clear, and it caused some performance problems.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@40932 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/wtf/RandomNumber.cpp

index 8796bfd..aff2349 100644 (file)
@@ -1,3 +1,15 @@
+2009-02-12  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Sam Weinig.
+        
+        Fixed <rdar://problem/6582048>.
+
+        * wtf/RandomNumber.cpp:
+        (WTF::randomNumber): Make only one call to the random number generator
+        on platforms where the generator is cryptographically secure. The value
+        of randomness over and above cryptographically secure randomness is not
+        clear, and it caused some performance problems.
+
 2009-02-12  Adam Roben  <aroben@apple.com>
 
         Fix lots of Perl warnings when building JavaScriptCoreGenerated on
 2009-02-12  Adam Roben  <aroben@apple.com>
 
         Fix lots of Perl warnings when building JavaScriptCoreGenerated on
index e569227..0bd2be3 100644 (file)
@@ -51,16 +51,9 @@ double randomNumber()
     uint64_t fullRandom;
 #if COMPILER(MSVC) && defined(_CRT_RAND_S)
     rand_s(&part1);
     uint64_t fullRandom;
 #if COMPILER(MSVC) && defined(_CRT_RAND_S)
     rand_s(&part1);
-    rand_s(&part2);
     fullRandom = part1;
     fullRandom = part1;
-    fullRandom <<= 32;
-    fullRandom |= part2;
 #elif PLATFORM(DARWIN)
 #elif PLATFORM(DARWIN)
-    part1 = arc4random();
-    part2 = arc4random();
-    fullRandom = part1;
-    fullRandom <<= 32;
-    fullRandom |= part2;
+    fullRandom = arc4random();
 #elif PLATFORM(UNIX)
     part1 = random() & (RAND_MAX - 1);
     part2 = random() & (RAND_MAX - 1);
 #elif PLATFORM(UNIX)
     part1 = random() & (RAND_MAX - 1);
     part2 = random() & (RAND_MAX - 1);