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 |