diff options
author | reveman <reveman@chromium.org> | 2015-01-12 07:32:14 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-12 15:33:07 +0000 |
commit | 6e3fb363a511053170e5b019c733dd75ad406100 (patch) | |
tree | f6a18b80938c247f69e273cea1c427434ddf97b4 /base/memory | |
parent | de81adf0a1dcca10a26ada9b2509637232cee5ef (diff) | |
download | chromium_src-6e3fb363a511053170e5b019c733dd75ad406100.zip chromium_src-6e3fb363a511053170e5b019c733dd75ad406100.tar.gz chromium_src-6e3fb363a511053170e5b019c733dd75ad406100.tar.bz2 |
Re-land: base: Fix DiscardableSharedMemory::mapped_size().
Set |mapped_size_| to 0 after unmapping memory.
BUG=429416
TEST=base_unittests --gtest_filter=DiscardableSharedMemoryTest.MappedSize
Review URL: https://codereview.chromium.org/842003002
Cr-Commit-Position: refs/heads/master@{#311051}
Diffstat (limited to 'base/memory')
-rw-r--r-- | base/memory/discardable_shared_memory.cc | 1 | ||||
-rw-r--r-- | base/memory/discardable_shared_memory_unittest.cc | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc index 2f80a16..e04377e 100644 --- a/base/memory/discardable_shared_memory.cc +++ b/base/memory/discardable_shared_memory.cc @@ -353,6 +353,7 @@ bool DiscardableSharedMemory::IsMemoryResident() const { void DiscardableSharedMemory::Close() { shared_memory_.Unmap(); shared_memory_.Close(); + mapped_size_ = 0; } Time DiscardableSharedMemory::Now() const { diff --git a/base/memory/discardable_shared_memory_unittest.cc b/base/memory/discardable_shared_memory_unittest.cc index 90441e1..896263d 100644 --- a/base/memory/discardable_shared_memory_unittest.cc +++ b/base/memory/discardable_shared_memory_unittest.cc @@ -287,5 +287,19 @@ TEST(DiscardableSharedMemoryTest, LockAndUnlockRange) { EXPECT_TRUE(rv); } +TEST(DiscardableSharedMemoryTest, MappedSize) { + const uint32 kDataSize = 1024; + + TestDiscardableSharedMemory memory; + bool rv = memory.CreateAndMap(kDataSize); + ASSERT_TRUE(rv); + + EXPECT_LE(kDataSize, memory.mapped_size()); + + // Mapped size should be 0 after memory segment has been closed. + memory.Close(); + EXPECT_EQ(0u, memory.mapped_size()); +} + } // namespace } // namespace base |