| 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();
|
| }
|
|
|
|
|