1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_MEMORY_DISCARDABLE_MEMORY_MALLOC_H_ 6 #define BASE_MEMORY_DISCARDABLE_MEMORY_MALLOC_H_ 7 8 #include "base/memory/discardable_memory.h" 9 10 namespace base { 11 namespace internal { 12 13 class DiscardableMemoryMalloc : public DiscardableMemory { 14 public: 15 explicit DiscardableMemoryMalloc(size_t size); 16 virtual ~DiscardableMemoryMalloc(); 17 18 bool Initialize(); 19 20 // Overridden from DiscardableMemory: 21 virtual DiscardableMemoryLockStatus Lock() OVERRIDE; 22 virtual void Unlock() OVERRIDE; 23 virtual void* Memory() const OVERRIDE; 24 25 private: 26 scoped_ptr<uint8, FreeDeleter> memory_; 27 const size_t size_; 28 29 DISALLOW_COPY_AND_ASSIGN(DiscardableMemoryMalloc); 30 }; 31 32 } // namespace internal 33 } // namespace base 34 35 #endif // BASE_MEMORY_DISCARDABLE_MEMORY_MALLOC_H_ 36