summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
Diffstat (limited to 'skia')
-rw-r--r--skia/ext/SkDiscardableMemory_chrome.cc27
-rw-r--r--skia/ext/SkDiscardableMemory_chrome.h12
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_;
};