Index: webkit/glue/web_discardable_memory_impl.cc |
diff --git a/webkit/glue/web_discardable_memory_impl.cc b/webkit/glue/web_discardable_memory_impl.cc |
index d4c3ee280a86a68439761e10e6ae428a2dfd84d1..02f9458fbb51086587a2e4c57c75747e61b7cabf 100644 |
--- a/webkit/glue/web_discardable_memory_impl.cc |
+++ b/webkit/glue/web_discardable_memory_impl.cc |
@@ -6,17 +6,24 @@ |
namespace webkit_glue { |
-WebDiscardableMemoryImpl::WebDiscardableMemoryImpl() |
- : discardable_(new base::DiscardableMemory()) { |
+WebDiscardableMemoryImpl::WebDiscardableMemoryImpl() { |
+ if (base::DiscardableMemoryProvider* provider = |
+ base::DiscardableMemoryProvider::GetInstance()) |
+ discardable_.reset(provider->CreateDiscardableMemory()); |
} |
WebDiscardableMemoryImpl::~WebDiscardableMemoryImpl() {} |
bool WebDiscardableMemoryImpl::InitializeAndLock(size_t size) { |
+ if (!discardable_) |
+ return false; |
return discardable_->InitializeAndLock(size); |
} |
bool WebDiscardableMemoryImpl::lock() { |
+ if (!discardable_) |
+ return false; |
+ |
base::LockDiscardableMemoryStatus status = discardable_->Lock(); |
switch (status) { |
case base::DISCARDABLE_MEMORY_SUCCESS: |
@@ -31,10 +38,14 @@ bool WebDiscardableMemoryImpl::lock() { |
} |
void* WebDiscardableMemoryImpl::data() { |
+ if (!discardable_) |
+ return NULL; |
return discardable_->Memory(); |
} |
void WebDiscardableMemoryImpl::unlock() { |
+ if (!discardable_) |
+ return; |
discardable_->Unlock(); |
} |