| Index: base/memory/discardable_memory_malloc.cc
|
| diff --git a/base/memory/discardable_memory_malloc.cc b/base/memory/discardable_memory_malloc.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d55135752698f5da21d189e1575aa3ea024819a4
|
| --- /dev/null
|
| +++ b/base/memory/discardable_memory_malloc.cc
|
| @@ -0,0 +1,43 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "base/memory/discardable_memory_malloc.h"
|
| +
|
| +#include "base/logging.h"
|
| +
|
| +namespace base {
|
| +namespace internal {
|
| +
|
| +DiscardableMemoryMalloc::DiscardableMemoryMalloc(size_t size) : size_(size) {
|
| +}
|
| +
|
| +DiscardableMemoryMalloc::~DiscardableMemoryMalloc() {
|
| +}
|
| +
|
| +bool DiscardableMemoryMalloc::Initialize() {
|
| + return Lock() == DISCARDABLE_MEMORY_LOCK_STATUS_PURGED;
|
| +}
|
| +
|
| +DiscardableMemoryLockStatus DiscardableMemoryMalloc::Lock() {
|
| + DCHECK(!memory_);
|
| +
|
| + memory_.reset(static_cast<uint8*>(malloc(size_)));
|
| + if (!memory_)
|
| + return DISCARDABLE_MEMORY_LOCK_STATUS_FAILED;
|
| +
|
| + return DISCARDABLE_MEMORY_LOCK_STATUS_PURGED;
|
| +}
|
| +
|
| +void DiscardableMemoryMalloc::Unlock() {
|
| + DCHECK(memory_);
|
| + memory_.reset();
|
| +}
|
| +
|
| +void* DiscardableMemoryMalloc::Memory() const {
|
| + DCHECK(memory_);
|
| + return memory_.get();
|
| +}
|
| +
|
| +} // namespace internal
|
| +} // namespace base
|
|
|