diff options
Diffstat (limited to 'skia')
-rw-r--r-- | skia/ext/SkDiscardableMemory_chrome.cc | 27 | ||||
-rw-r--r-- | skia/ext/SkDiscardableMemory_chrome.h | 12 |
2 files changed, 16 insertions, 23 deletions
diff --git a/skia/ext/SkDiscardableMemory_chrome.cc b/skia/ext/SkDiscardableMemory_chrome.cc index 2e78788..6639a5a 100644 --- a/skia/ext/SkDiscardableMemory_chrome.cc +++ b/skia/ext/SkDiscardableMemory_chrome.cc @@ -4,15 +4,10 @@ #include "SkDiscardableMemory_chrome.h" -SkDiscardableMemoryChrome::SkDiscardableMemoryChrome() - : discardable_(new base::DiscardableMemory()) { -} - -SkDiscardableMemoryChrome::~SkDiscardableMemoryChrome() { -} +SkDiscardableMemoryChrome::~SkDiscardableMemoryChrome() {} bool SkDiscardableMemoryChrome::lock() { - base::LockDiscardableMemoryStatus status = discardable_->Lock(); + const base::LockDiscardableMemoryStatus status = discardable_->Lock(); switch (status) { case base::DISCARDABLE_MEMORY_SUCCESS: return true; @@ -33,17 +28,17 @@ void SkDiscardableMemoryChrome::unlock() { discardable_->Unlock(); } -bool SkDiscardableMemoryChrome::InitializeAndLock(size_t bytes) { - return discardable_->InitializeAndLock(bytes); +SkDiscardableMemoryChrome::SkDiscardableMemoryChrome( + scoped_ptr<base::DiscardableMemory> memory) + : discardable_(memory.Pass()) { } SkDiscardableMemory* SkDiscardableMemory::Create(size_t bytes) { - if (!base::DiscardableMemory::Supported()) { + if (!base::DiscardableMemory::Supported()) return NULL; - } - scoped_ptr<SkDiscardableMemoryChrome> discardable( - new SkDiscardableMemoryChrome()); - if (discardable->InitializeAndLock(bytes)) - return discardable.release(); - return NULL; + scoped_ptr<base::DiscardableMemory> discardable( + base::DiscardableMemory::CreateLockedMemory(bytes)); + if (!discardable) + return NULL; + return new SkDiscardableMemoryChrome(discardable.Pass()); } diff --git a/skia/ext/SkDiscardableMemory_chrome.h b/skia/ext/SkDiscardableMemory_chrome.h index 13dfef8..b251dc4 100644 --- a/skia/ext/SkDiscardableMemory_chrome.h +++ b/skia/ext/SkDiscardableMemory_chrome.h @@ -13,20 +13,18 @@ // base::DiscardableMemory. class SK_API SkDiscardableMemoryChrome : public SkDiscardableMemory { public: - SkDiscardableMemoryChrome(); virtual ~SkDiscardableMemoryChrome(); - // Initialize the SkDiscardableMemoryChrome object and lock the memory. - // Returns true on success. No memory is allocated if this call returns - // false. This call should only be called once. - bool InitializeAndLock(size_t bytes); - - // Implementation of SkDiscardableMemory interface. + // SkDiscardableMemory: virtual bool lock() OVERRIDE; virtual void* data() OVERRIDE; virtual void unlock() OVERRIDE; private: + friend class SkDiscardableMemory; + + SkDiscardableMemoryChrome(scoped_ptr<base::DiscardableMemory> memory); + scoped_ptr<base::DiscardableMemory> discardable_; }; |