| Index: base/memory/discardable_memory_linux.cc
|
| diff --git a/base/memory/discardable_memory_linux.cc b/base/memory/discardable_memory_linux.cc
|
| index 6a9a28df2dc6fb9bdb10c5065e444b047e00aad9..9b4e9401ce4ff7c006756a9a5ed6a245431662c9 100644
|
| --- a/base/memory/discardable_memory_linux.cc
|
| +++ b/base/memory/discardable_memory_linux.cc
|
| @@ -6,10 +6,16 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/memory/discardable_memory_emulated.h"
|
| +#include "base/memory/discardable_memory_shmem.h"
|
|
|
| namespace base {
|
|
|
| // static
|
| +void DiscardableMemory::ReleaseFreeMemory() {
|
| + internal::DiscardableMemoryShmem::ReleaseFreeMemory();
|
| +}
|
| +
|
| +// static
|
| bool DiscardableMemory::ReduceMemoryUsage() {
|
| return internal::DiscardableMemoryEmulated::ReduceMemoryUsage();
|
| }
|
| @@ -18,7 +24,8 @@ bool DiscardableMemory::ReduceMemoryUsage() {
|
| void DiscardableMemory::GetSupportedTypes(
|
| std::vector<DiscardableMemoryType>* types) {
|
| const DiscardableMemoryType supported_types[] = {
|
| - DISCARDABLE_MEMORY_TYPE_EMULATED
|
| + DISCARDABLE_MEMORY_TYPE_EMULATED,
|
| + DISCARDABLE_MEMORY_TYPE_SHMEM
|
| };
|
| types->assign(supported_types, supported_types + arraysize(supported_types));
|
| }
|
| @@ -35,6 +42,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:
|
| case DISCARDABLE_MEMORY_TYPE_MACH:
|
| @@ -49,6 +64,7 @@ scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType(
|
| // static
|
| void DiscardableMemory::PurgeForTesting() {
|
| internal::DiscardableMemoryEmulated::PurgeForTesting();
|
| + internal::DiscardableMemoryShmem::PurgeForTesting();
|
| }
|
|
|
| } // namespace base
|
|
|