diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 09:02:34 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 09:02:34 +0000 |
commit | e29e3f552af122c042dde824952e477ef6e5263c (patch) | |
tree | f300691f2bb8f2e4a24ec1830d02c741da1b25b2 /base/shared_memory_win.cc | |
parent | fb57c430ca3716272f812309c74c3d358bca5318 (diff) | |
download | chromium_src-e29e3f552af122c042dde824952e477ef6e5263c.zip chromium_src-e29e3f552af122c042dde824952e477ef6e5263c.tar.gz chromium_src-e29e3f552af122c042dde824952e477ef6e5263c.tar.bz2 |
Added SharedMemory::MapFrom.
Fragmentation of address space may prevents process from allocate entire block of shared memory. Particularly in attached bug browser process can't allocate 250Mb to accept data from renderer Mapping smaller blocks is workaround.
BUG=93202
Review URL: https://chromiumcodereview.appspot.com/11876037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177109 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/shared_memory_win.cc')
-rw-r--r-- | base/shared_memory_win.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/base/shared_memory_win.cc b/base/shared_memory_win.cc index 877ccd7..f64e3c8 100644 --- a/base/shared_memory_win.cc +++ b/base/shared_memory_win.cc @@ -134,7 +134,7 @@ bool SharedMemory::Open(const std::string& name, bool read_only) { return false; } -bool SharedMemory::Map(size_t bytes) { +bool SharedMemory::MapAt(off_t offset, size_t bytes) { if (mapped_file_ == NULL) return false; @@ -142,7 +142,10 @@ bool SharedMemory::Map(size_t bytes) { return false; memory_ = MapViewOfFile(mapped_file_, - read_only_ ? FILE_MAP_READ : FILE_MAP_ALL_ACCESS, 0, 0, bytes); + read_only_ ? FILE_MAP_READ : FILE_MAP_ALL_ACCESS, + static_cast<uint64>(offset) >> 32, + static_cast<DWORD>(offset), + bytes); if (memory_ != NULL) { DCHECK_EQ(0U, reinterpret_cast<uintptr_t>(memory_) & (SharedMemory::MAP_MINIMUM_ALIGNMENT - 1)); |