From 6e3fb363a511053170e5b019c733dd75ad406100 Mon Sep 17 00:00:00 2001 From: reveman Date: Mon, 12 Jan 2015 07:32:14 -0800 Subject: 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} --- base/memory/discardable_shared_memory.cc | 1 + base/memory/discardable_shared_memory_unittest.cc | 14 ++++++++++++++ 2 files changed, 15 insertions(+) (limited to 'base/memory') 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 -- cgit v1.1