| Index: base/memory/discardable_memory_mac.cc
|
| diff --git a/base/memory/discardable_memory_mac.cc b/base/memory/discardable_memory_mac.cc
|
| index 6896e5a7c167a311560a79c35a0e7ca7b7793823..18cf80ac4aa80cf2fbae99d755b05fb7127e8ebf 100644
|
| --- a/base/memory/discardable_memory_mac.cc
|
| +++ b/base/memory/discardable_memory_mac.cc
|
| @@ -8,11 +8,17 @@
|
| #include "base/memory/discardable_memory_emulated.h"
|
| #include "base/memory/discardable_memory_mach.h"
|
| #include "base/memory/discardable_memory_manager.h"
|
| +#include "base/memory/discardable_memory_shmem.h"
|
| #include "base/memory/scoped_ptr.h"
|
|
|
| namespace base {
|
|
|
| // static
|
| +void DiscardableMemory::ReleaseFreeMemory() {
|
| + internal::DiscardableMemoryShmem::ReleaseFreeMemory();
|
| +}
|
| +
|
| +// static
|
| bool DiscardableMemory::ReduceMemoryUsage() {
|
| return internal::DiscardableMemoryEmulated::ReduceMemoryUsage();
|
| }
|
| @@ -22,7 +28,8 @@ void DiscardableMemory::GetSupportedTypes(
|
| std::vector<DiscardableMemoryType>* types) {
|
| const DiscardableMemoryType supported_types[] = {
|
| DISCARDABLE_MEMORY_TYPE_MACH,
|
| - DISCARDABLE_MEMORY_TYPE_EMULATED
|
| + DISCARDABLE_MEMORY_TYPE_EMULATED,
|
| + DISCARDABLE_MEMORY_TYPE_SHMEM
|
| };
|
| types->assign(supported_types, supported_types + arraysize(supported_types));
|
| }
|
| @@ -47,6 +54,14 @@ scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType(
|
|
|
| return memory.Pass();
|
| }
|
| + case DISCARDABLE_MEMORY_TYPE_SHMEM: {
|
| + scoped_ptr<internal::DiscardableMemoryShmem> memory(
|
| + new internal::DiscardableMemoryShmem(size));
|
| + if (!memory->Initialize())
|
| + return nullptr;
|
| +
|
| + return memory.Pass();
|
| + }
|
| case DISCARDABLE_MEMORY_TYPE_NONE:
|
| case DISCARDABLE_MEMORY_TYPE_ASHMEM:
|
| NOTREACHED();
|
| @@ -61,6 +76,7 @@ scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType(
|
| void DiscardableMemory::PurgeForTesting() {
|
| internal::DiscardableMemoryMach::PurgeForTesting();
|
| internal::DiscardableMemoryEmulated::PurgeForTesting();
|
| + internal::DiscardableMemoryShmem::PurgeForTesting();
|
| }
|
|
|
| } // namespace base
|
|
|