| Index: base/memory/discardable_shared_memory.cc
|
| diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc
|
| index 49e93cdaf6f22a20e0a76fd0128b5aa8cdd743dd..830d6b9d87fdde5438b2d1255c6dc07b62aabf93 100644
|
| --- a/base/memory/discardable_shared_memory.cc
|
| +++ b/base/memory/discardable_shared_memory.cc
|
| @@ -325,22 +325,6 @@ bool DiscardableSharedMemory::Purge(Time current_time) {
|
| return true;
|
| }
|
|
|
| -bool DiscardableSharedMemory::PurgeAndTruncate(Time current_time) {
|
| - if (!Purge(current_time))
|
| - return false;
|
| -
|
| -#if defined(OS_POSIX)
|
| - // Truncate shared memory to size of SharedState.
|
| - SharedMemoryHandle handle = shared_memory_.handle();
|
| - if (SharedMemory::IsHandleValid(handle)) {
|
| - if (HANDLE_EINTR(ftruncate(handle.fd, sizeof(SharedState))) != 0)
|
| - DPLOG(ERROR) << "ftruncate() failed";
|
| - }
|
| -#endif
|
| -
|
| - return true;
|
| -}
|
| -
|
| bool DiscardableSharedMemory::IsMemoryResident() const {
|
| DCHECK(shared_memory_.memory());
|
|
|
| @@ -357,6 +341,26 @@ void DiscardableSharedMemory::Close() {
|
| mapped_size_ = 0;
|
| }
|
|
|
| +#if defined(DISCARDABLE_SHARED_MEMORY_SHRINKING)
|
| +void DiscardableSharedMemory::Shrink() {
|
| +#if defined(OS_POSIX)
|
| + SharedMemoryHandle handle = shared_memory_.handle();
|
| + if (!SharedMemory::IsHandleValid(handle))
|
| + return;
|
| +
|
| + // Truncate shared memory to size of SharedState.
|
| + if (HANDLE_EINTR(
|
| + ftruncate(handle.fd, AlignToPageSize(sizeof(SharedState)))) != 0) {
|
| + DPLOG(ERROR) << "ftruncate() failed";
|
| + return;
|
| + }
|
| + mapped_size_ = 0;
|
| +#else
|
| + NOTIMPLEMENTED();
|
| +#endif
|
| +}
|
| +#endif
|
| +
|
| Time DiscardableSharedMemory::Now() const {
|
| return Time::Now();
|
| }
|
|
|