Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / base / memory / discardable_memory_mac.cc
index 0c0b2a6..40a9739 100644 (file)
@@ -11,6 +11,7 @@
 #include "base/compiler_specific.h"
 #include "base/logging.h"
 #include "base/memory/discardable_memory_emulated.h"
+#include "base/memory/discardable_memory_malloc.h"
 #include "base/memory/scoped_ptr.h"
 
 namespace base {
@@ -103,7 +104,8 @@ void DiscardableMemory::GetSupportedTypes(
     std::vector<DiscardableMemoryType>* types) {
   const DiscardableMemoryType supported_types[] = {
     DISCARDABLE_MEMORY_TYPE_MAC,
-    DISCARDABLE_MEMORY_TYPE_EMULATED
+    DISCARDABLE_MEMORY_TYPE_EMULATED,
+    DISCARDABLE_MEMORY_TYPE_MALLOC
   };
   types->assign(supported_types, supported_types + arraysize(supported_types));
 }
@@ -130,6 +132,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();