| Index: base/memory/discardable_memory_shmem.cc
|
| diff --git a/base/memory/discardable_memory_shmem.cc b/base/memory/discardable_memory_shmem.cc
|
| index 9056279492f4a2544904b3f38c63d52386df1774..059d84ca6111a86deef41162ee6129fe41f5a77a 100644
|
| --- a/base/memory/discardable_memory_shmem.cc
|
| +++ b/base/memory/discardable_memory_shmem.cc
|
| @@ -11,7 +11,10 @@ namespace base {
|
| namespace internal {
|
|
|
| DiscardableMemoryShmem::DiscardableMemoryShmem(size_t bytes)
|
| - : bytes_(bytes), is_locked_(false) {
|
| + : chunk_(DiscardableMemoryShmemAllocator::GetInstance()
|
| + ->AllocateLockedDiscardableMemory(bytes)),
|
| + is_locked_(true) {
|
| + DCHECK(chunk_);
|
| }
|
|
|
| DiscardableMemoryShmem::~DiscardableMemoryShmem() {
|
| @@ -19,37 +22,27 @@ DiscardableMemoryShmem::~DiscardableMemoryShmem() {
|
| Unlock();
|
| }
|
|
|
| -bool DiscardableMemoryShmem::Initialize() {
|
| - return Lock() != DISCARDABLE_MEMORY_LOCK_STATUS_FAILED;
|
| -}
|
| -
|
| -DiscardableMemoryLockStatus DiscardableMemoryShmem::Lock() {
|
| +bool DiscardableMemoryShmem::Lock() {
|
| DCHECK(!is_locked_);
|
| + DCHECK(chunk_);
|
|
|
| - if (chunk_ && chunk_->Lock()) {
|
| - is_locked_ = true;
|
| - return DISCARDABLE_MEMORY_LOCK_STATUS_SUCCESS;
|
| + if (!chunk_->Lock()) {
|
| + chunk_.reset();
|
| + return false;
|
| }
|
|
|
| - chunk_ = DiscardableMemoryShmemAllocator::GetInstance()
|
| - ->AllocateLockedDiscardableMemory(bytes_);
|
| - if (!chunk_)
|
| - return DISCARDABLE_MEMORY_LOCK_STATUS_FAILED;
|
| -
|
| is_locked_ = true;
|
| - return DISCARDABLE_MEMORY_LOCK_STATUS_PURGED;
|
| + return true;
|
| }
|
|
|
| void DiscardableMemoryShmem::Unlock() {
|
| DCHECK(is_locked_);
|
| - DCHECK(chunk_);
|
| chunk_->Unlock();
|
| is_locked_ = false;
|
| }
|
|
|
| void* DiscardableMemoryShmem::Memory() const {
|
| DCHECK(is_locked_);
|
| - DCHECK(chunk_);
|
| return chunk_->Memory();
|
| }
|
|
|
|
|