Chromium Code Reviews| Index: base/files/memory_mapped_file_win.cc |
| diff --git a/base/files/memory_mapped_file_win.cc b/base/files/memory_mapped_file_win.cc |
| index 4e7e934e1c858823f13a2c7842a1daa0e390591b..2bbf1b0321abf3479be70d4644284428ebc40b0c 100644 |
| --- a/base/files/memory_mapped_file_win.cc |
| +++ b/base/files/memory_mapped_file_win.cc |
| @@ -19,13 +19,17 @@ bool MemoryMappedFile::InitializeAsImageSection(const FilePath& file_name) { |
| } |
| bool MemoryMappedFile::MapFileRegionToMemory( |
| - const MemoryMappedFile::Region& region) { |
| + const MemoryMappedFile::Region& region, bool write) { |
| ThreadRestrictions::AssertIOAllowed(); |
| if (!file_.IsValid()) |
| return false; |
| - int flags = image_ ? SEC_IMAGE | PAGE_READONLY : PAGE_READONLY; |
| + int flags = 0; |
| + if (image_) |
| + flags = SEC_IMAGE | PAGE_READONLY; |
|
wuchengli
2014/08/28 10:17:48
Why we don't need PAGE_READWRITE for SEC_IMAGE?
henryhsu
2014/08/29 06:36:40
image_ is true when InitializeAsImageSection funct
wuchengli
2014/08/29 10:03:11
From MSDN, it doesn't say SEC_IMAGE is not allowed
|
| + else |
| + flags = write ? PAGE_READWRITE : PAGE_READONLY; |
| file_mapping_.Set(::CreateFileMapping(file_.GetPlatformFile(), NULL, |
| flags, 0, 0, NULL)); |
| @@ -66,8 +70,9 @@ bool MemoryMappedFile::MapFileRegionToMemory( |
| length_ = static_cast<size_t>(region.size); |
| } |
| + int map_flags = (flags & PAGE_READONLY) ? FILE_MAP_READ : FILE_MAP_WRITE; |
|
wuchengli
2014/08/28 10:17:48
s/flags & PAGE_READONLY/write/
map_access is bett
henryhsu
2014/08/29 06:36:40
Done.
|
| data_ = static_cast<uint8*>(::MapViewOfFile(file_mapping_.Get(), |
| - FILE_MAP_READ, |
| + map_flags, |
| map_start.HighPart, |
| map_start.LowPart, |
| map_size)); |