| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "sky/engine/config.h" |
| 6 #include "wtf/AddressSpaceRandomization.h" | 6 #include "sky/engine/wtf/AddressSpaceRandomization.h" |
| 7 | 7 |
| 8 #include "wtf/PageAllocator.h" | 8 #include "sky/engine/wtf/PageAllocator.h" |
| 9 #include "wtf/ProcessID.h" | 9 #include "sky/engine/wtf/ProcessID.h" |
| 10 #include "wtf/SpinLock.h" | 10 #include "sky/engine/wtf/SpinLock.h" |
| 11 | 11 |
| 12 namespace WTF { | 12 namespace WTF { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 // This is the same PRNG as used by tcmalloc for mapping address randomness; | 16 // This is the same PRNG as used by tcmalloc for mapping address randomness; |
| 17 // see http://burtleburtle.net/bob/rand/smallprng.html | 17 // see http://burtleburtle.net/bob/rand/smallprng.html |
| 18 struct ranctx { | 18 struct ranctx { |
| 19 int lock; | 19 int lock; |
| 20 bool initialized; | 20 bool initialized; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 // This is a good range on Windows, Linux and Mac. | 90 // This is a good range on Windows, Linux and Mac. |
| 91 // Allocates in the 0.5-1.5GB region. | 91 // Allocates in the 0.5-1.5GB region. |
| 92 random &= 0x3fffffff; | 92 random &= 0x3fffffff; |
| 93 random += 0x20000000; | 93 random += 0x20000000; |
| 94 #endif // CPU(X86_64) | 94 #endif // CPU(X86_64) |
| 95 random &= kPageAllocationGranularityBaseMask; | 95 random &= kPageAllocationGranularityBaseMask; |
| 96 return reinterpret_cast<void*>(random); | 96 return reinterpret_cast<void*>(random); |
| 97 } | 97 } |
| 98 | 98 |
| 99 } | 99 } |
| OLD | NEW |