Index: base/memory/discardable_memory_win.cc |
diff --git a/base/memory/discardable_memory_win.cc b/base/memory/discardable_memory_win.cc |
index 6ae9483ca92a141a3eedf6974c9121a386e9b0c3..e44b7c20ce0020fa1ba36bb0259e119488f1fe6c 100644 |
--- a/base/memory/discardable_memory_win.cc |
+++ b/base/memory/discardable_memory_win.cc |
@@ -6,6 +6,7 @@ |
#include "base/logging.h" |
#include "base/memory/discardable_memory_emulated.h" |
+#include "base/memory/discardable_memory_malloc.h" |
namespace base { |
@@ -23,7 +24,8 @@ void DiscardableMemory::UnregisterMemoryPressureListeners() { |
void DiscardableMemory::GetSupportedTypes( |
std::vector<DiscardableMemoryType>* types) { |
const DiscardableMemoryType supported_types[] = { |
- DISCARDABLE_MEMORY_TYPE_EMULATED |
+ DISCARDABLE_MEMORY_TYPE_EMULATED, |
+ DISCARDABLE_MEMORY_TYPE_MALLOC |
}; |
types->assign(supported_types, supported_types + arraysize(supported_types)); |
} |
@@ -44,6 +46,14 @@ scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType( |
return memory.PassAs<DiscardableMemory>(); |
} |
+ case DISCARDABLE_MEMORY_TYPE_MALLOC: { |
+ scoped_ptr<internal::DiscardableMemoryMalloc> memory( |
+ new internal::DiscardableMemoryMalloc(size)); |
+ if (!memory->Initialize()) |
+ return scoped_ptr<DiscardableMemory>(); |
+ |
+ return memory.PassAs<DiscardableMemory>(); |
+ } |
} |
NOTREACHED(); |