summaryrefslogtreecommitdiffstats
path: root/base/memory
diff options
context:
space:
mode:
authorreveman <reveman@chromium.org>2015-01-12 07:32:14 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-12 15:33:07 +0000
commit6e3fb363a511053170e5b019c733dd75ad406100 (patch)
treef6a18b80938c247f69e273cea1c427434ddf97b4 /base/memory
parentde81adf0a1dcca10a26ada9b2509637232cee5ef (diff)
downloadchromium_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.cc1
-rw-r--r--base/memory/discardable_shared_memory_unittest.cc14
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