Chromium Code Reviews| Index: src/bootstrapper.cc |
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
| index 92ff269535209235ce9f05d42acdc4e9b11655de..8dd7d82bcb2250ba09232b24fd327b80d63a638f 100644 |
| --- a/src/bootstrapper.cc |
| +++ b/src/bootstrapper.cc |
| @@ -1316,13 +1316,9 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
| Handle<FixedArray> embedder_data = factory->NewFixedArray(2); |
| native_context()->set_embedder_data(*embedder_data); |
| - { |
| - // Initialize the random seed slot. |
| - Handle<ByteArray> zeroed_byte_array( |
| - factory->NewByteArray(kRandomStateSize)); |
| - native_context()->set_random_seed(*zeroed_byte_array); |
| - memset(zeroed_byte_array->GetDataStartAddress(), 0, kRandomStateSize); |
| - } |
| + // Allocate the random seed slot. |
| + Handle<ByteArray> random_seed(factory->NewByteArray(kRandomStateSize)); |
|
Michael Starzinger
2013/09/09 17:11:25
nit: Use assignment instead of copy constructor.
Benedikt Meurer
2013/09/10 06:08:07
Done.
|
| + native_context()->set_random_seed(*random_seed); |
| } |
| @@ -2410,6 +2406,14 @@ bool Genesis::ConfigureGlobalObjects( |
| Handle<JSObject> inner_global( |
| JSObject::cast(native_context()->global_object())); |
| + // Initially seed the per-context random number generator |
| + // using the per-isolate random number generator. |
|
Michael Starzinger
2013/09/09 17:11:25
It seems "ConfigureGlobalObjects" is a bad name fo
Benedikt Meurer
2013/09/10 06:08:07
Just this piece of code, or the whole ConfigureGlo
Michael Starzinger
2013/09/10 08:43:31
Just this new piece of initialization.
Benedikt Meurer
2013/09/10 10:52:13
Done.
|
| + uint32_t* state = reinterpret_cast<uint32_t*>( |
| + native_context()->random_seed()->GetDataStartAddress()); |
| + do { |
| + isolate()->random_number_generator()->NextBytes(state, kRandomStateSize); |
| + } while (state[0] == 0 || state[1] == 0); |
| + |
| if (!global_proxy_template.IsEmpty()) { |
| // Configure the global proxy object. |
| Handle<ObjectTemplateInfo> proxy_data = |