| Index: base/memory/discardable_memory_shmem_allocator.cc
|
| diff --git a/base/memory/discardable_memory_shmem_allocator.cc b/base/memory/discardable_memory_shmem_allocator.cc
|
| index 78d15c1031e7713bc9e80915dd894942c4d755b6..fdd68673420e84eafe67c5cfc4a90b955eea5714 100644
|
| --- a/base/memory/discardable_memory_shmem_allocator.cc
|
| +++ b/base/memory/discardable_memory_shmem_allocator.cc
|
| @@ -11,19 +11,39 @@
|
| namespace base {
|
| namespace {
|
|
|
| +class DiscardableMemoryShmemChunkImpl : public DiscardableMemoryShmemChunk {
|
| + public:
|
| + explicit DiscardableMemoryShmemChunkImpl(
|
| + scoped_ptr<DiscardableSharedMemory> shared_memory)
|
| + : shared_memory_(shared_memory.Pass()) {}
|
| +
|
| + // Overridden from DiscardableMemoryShmemChunk:
|
| + bool Lock() override { return shared_memory_->Lock(0, 0); }
|
| + void Unlock() override { shared_memory_->Unlock(0, 0); }
|
| + void* Memory() const override { return shared_memory_->memory(); }
|
| + bool IsMemoryResident() const override {
|
| + return shared_memory_->IsMemoryResident();
|
| + }
|
| +
|
| + private:
|
| + scoped_ptr<DiscardableSharedMemory> shared_memory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DiscardableMemoryShmemChunkImpl);
|
| +};
|
| +
|
| // Default allocator implementation that allocates in-process
|
| // DiscardableSharedMemory instances.
|
| class DiscardableMemoryShmemAllocatorImpl
|
| : public DiscardableMemoryShmemAllocator {
|
| public:
|
| // Overridden from DiscardableMemoryShmemAllocator:
|
| - virtual scoped_ptr<DiscardableSharedMemory>
|
| - AllocateLockedDiscardableSharedMemory(size_t size) override {
|
| + scoped_ptr<DiscardableMemoryShmemChunk>
|
| + AllocateLockedDiscardableMemory(size_t size) override {
|
| scoped_ptr<DiscardableSharedMemory> memory(new DiscardableSharedMemory);
|
| if (!memory->CreateAndMap(size))
|
| - return scoped_ptr<DiscardableSharedMemory>();
|
| + return nullptr;
|
|
|
| - return memory.Pass();
|
| + return make_scoped_ptr(new DiscardableMemoryShmemChunkImpl(memory.Pass()));
|
| }
|
| };
|
|
|
|
|