Index: src/platform-win32.cc |
diff --git a/src/platform-win32.cc b/src/platform-win32.cc |
index e23ebe5c387452bc7167b72eaf0acf357521411c..ab03e3d1107bf438dc68b951a2536ec43ec8afab 100644 |
--- a/src/platform-win32.cc |
+++ b/src/platform-win32.cc |
@@ -186,13 +186,14 @@ OS::MemCopyFunction CreateMemCopyFunction(); |
void OS::MemCopy(void* dest, const void* src, size_t size) { |
if (memcopy_function == NULL) { |
ScopedLock lock(memcopy_function_mutex); |
- Isolate::EnsureDefaultIsolate(); |
if (memcopy_function == NULL) { |
OS::MemCopyFunction temp = CreateMemCopyFunction(); |
MemoryBarrier(); |
memcopy_function = temp; |
} |
} |
+ // Note: here we rely on dependent reads being ordered. This is true |
+ // on all architectures we currently support. |
(*memcopy_function)(dest, src, size); |
#ifdef DEBUG |
CHECK_EQ(0, memcmp(dest, src, size)); |
@@ -210,13 +211,14 @@ ModuloFunction CreateModuloFunction(); |
double modulo(double x, double y) { |
if (modulo_function == NULL) { |
ScopedLock lock(modulo_function_mutex); |
- Isolate::EnsureDefaultIsolate(); |
if (modulo_function == NULL) { |
ModuloFunction temp = CreateModuloFunction(); |
MemoryBarrier(); |
modulo_function = temp; |
} |
} |
+ // Note: here we rely on dependent reads being ordered. This is true |
+ // on all architectures we currently support. |
return (*modulo_function)(x, y); |
} |
#else // Win32 |