Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: src/base/platform/platform-win32.cc

Issue 544043002: Next base/macros.h cleanup step. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/base/platform/platform-solaris.cc ('k') | src/utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project 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 // Platform-specific code for Win32. 5 // Platform-specific code for Win32.
6 6
7 // Secure API functions are not available using MinGW with msvcrt.dll 7 // Secure API functions are not available using MinGW with msvcrt.dll
8 // on Windows XP. Make sure MINGW_HAS_SECURE_API is not defined to 8 // on Windows XP. Make sure MINGW_HAS_SECURE_API is not defined to
9 // disable definition of secure API functions in standard headers that 9 // disable definition of secure API functions in standard headers that
10 // would conflict with our own implementation. 10 // would conflict with our own implementation.
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 779
780 // Windows XP SP2 allows Data Excution Prevention (DEP). 780 // Windows XP SP2 allows Data Excution Prevention (DEP).
781 int prot = is_executable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE; 781 int prot = is_executable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE;
782 782
783 LPVOID mbase = RandomizedVirtualAlloc(msize, 783 LPVOID mbase = RandomizedVirtualAlloc(msize,
784 MEM_COMMIT | MEM_RESERVE, 784 MEM_COMMIT | MEM_RESERVE,
785 prot); 785 prot);
786 786
787 if (mbase == NULL) return NULL; 787 if (mbase == NULL) return NULL;
788 788
789 DCHECK(IsAligned(reinterpret_cast<size_t>(mbase), OS::AllocateAlignment())); 789 DCHECK((static_cast<uintptr_t>(mbase) % OS::AllocateAlignment()) == 0);
790 790
791 *allocated = msize; 791 *allocated = msize;
792 return mbase; 792 return mbase;
793 } 793 }
794 794
795 795
796 void OS::Free(void* address, const size_t size) { 796 void OS::Free(void* address, const size_t size) {
797 // TODO(1240712): VirtualFree has a return value which is ignored here. 797 // TODO(1240712): VirtualFree has a return value which is ignored here.
798 VirtualFree(address, 0, MEM_RELEASE); 798 VirtualFree(address, 0, MEM_RELEASE);
799 USE(size); 799 USE(size);
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 1198
1199 VirtualMemory::VirtualMemory() : address_(NULL), size_(0) { } 1199 VirtualMemory::VirtualMemory() : address_(NULL), size_(0) { }
1200 1200
1201 1201
1202 VirtualMemory::VirtualMemory(size_t size) 1202 VirtualMemory::VirtualMemory(size_t size)
1203 : address_(ReserveRegion(size)), size_(size) { } 1203 : address_(ReserveRegion(size)), size_(size) { }
1204 1204
1205 1205
1206 VirtualMemory::VirtualMemory(size_t size, size_t alignment) 1206 VirtualMemory::VirtualMemory(size_t size, size_t alignment)
1207 : address_(NULL), size_(0) { 1207 : address_(NULL), size_(0) {
1208 DCHECK(IsAligned(alignment, static_cast<intptr_t>(OS::AllocateAlignment()))); 1208 DCHECK((alignment % OS::AllocateAlignment()) == 0);
1209 size_t request_size = RoundUp(size + alignment, 1209 size_t request_size = RoundUp(size + alignment,
1210 static_cast<intptr_t>(OS::AllocateAlignment())); 1210 static_cast<intptr_t>(OS::AllocateAlignment()));
1211 void* address = ReserveRegion(request_size); 1211 void* address = ReserveRegion(request_size);
1212 if (address == NULL) return; 1212 if (address == NULL) return;
1213 uint8_t* base = RoundUp(static_cast<uint8_t*>(address), alignment); 1213 uint8_t* base = RoundUp(static_cast<uint8_t*>(address), alignment);
1214 // Try reducing the size by freeing and then reallocating a specific area. 1214 // Try reducing the size by freeing and then reallocating a specific area.
1215 bool result = ReleaseRegion(address, request_size); 1215 bool result = ReleaseRegion(address, request_size);
1216 USE(result); 1216 USE(result);
1217 DCHECK(result); 1217 DCHECK(result);
1218 address = VirtualAlloc(base, size, MEM_RESERVE, PAGE_NOACCESS); 1218 address = VirtualAlloc(base, size, MEM_RESERVE, PAGE_NOACCESS);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 DCHECK(result); 1397 DCHECK(result);
1398 } 1398 }
1399 1399
1400 1400
1401 1401
1402 void Thread::YieldCPU() { 1402 void Thread::YieldCPU() {
1403 Sleep(0); 1403 Sleep(0);
1404 } 1404 }
1405 1405
1406 } } // namespace v8::base 1406 } } // namespace v8::base
OLDNEW
« no previous file with comments | « src/base/platform/platform-solaris.cc ('k') | src/utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698