[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 1 | // Copyright 2013 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 | |||||
dcheng | b7745d3 | 2015-12-18 16:57:31 | [diff] [blame] | 5 | #include "skia/ext/SkDiscardableMemory_chrome.h" |
6 | |||||
avi | cef19f7 | 2015-12-22 17:47:24 | [diff] [blame] | 7 | #include <stddef.h> |
8 | |||||
dcheng | b7745d3 | 2015-12-18 16:57:31 | [diff] [blame] | 9 | #include <utility> |
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 10 | |
reveman | e7b4233 | 2015-03-18 04:40:19 | [diff] [blame] | 11 | #include "base/memory/discardable_memory.h" |
12 | #include "base/memory/discardable_memory_allocator.h" | ||||
13 | |||||
Chris Watkins | 4f5514534 | 2017-11-29 01:41:16 | [diff] [blame] | 14 | SkDiscardableMemoryChrome::~SkDiscardableMemoryChrome() = default; |
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 15 | |
16 | bool SkDiscardableMemoryChrome::lock() { | ||||
reveman | ef908422 | 2015-03-12 17:46:23 | [diff] [blame] | 17 | return discardable_->Lock(); |
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 18 | } |
19 | |||||
20 | void* SkDiscardableMemoryChrome::data() { | ||||
reveman | 2cc373d | 2015-04-16 20:52:18 | [diff] [blame] | 21 | return discardable_->data(); |
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 22 | } |
23 | |||||
24 | void SkDiscardableMemoryChrome::unlock() { | ||||
25 | discardable_->Unlock(); | ||||
26 | } | ||||
27 | |||||
[email protected] | 9923ee1 | 2013-10-21 16:54:06 | [diff] [blame] | 28 | SkDiscardableMemoryChrome::SkDiscardableMemoryChrome( |
thakis | b743cc6 | 2016-04-11 18:33:14 | [diff] [blame] | 29 | std::unique_ptr<base::DiscardableMemory> memory) |
dcheng | b7745d3 | 2015-12-18 16:57:31 | [diff] [blame] | 30 | : discardable_(std::move(memory)) {} |
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 31 | |
ssid | 7040503 | 2015-09-03 19:10:14 | [diff] [blame] | 32 | base::trace_event::MemoryAllocatorDump* |
33 | SkDiscardableMemoryChrome::CreateMemoryAllocatorDump( | ||||
34 | const char* name, | ||||
35 | base::trace_event::ProcessMemoryDump* pmd) const { | ||||
36 | return discardable_->CreateMemoryAllocatorDump(name, pmd); | ||||
37 | } | ||||
38 | |||||
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 39 | SkDiscardableMemory* SkDiscardableMemory::Create(size_t bytes) { |
reveman | ef908422 | 2015-03-12 17:46:23 | [diff] [blame] | 40 | return new SkDiscardableMemoryChrome( |
reveman | e7b4233 | 2015-03-18 04:40:19 | [diff] [blame] | 41 | base::DiscardableMemoryAllocator::GetInstance() |
42 | ->AllocateLockedDiscardableMemory(bytes)); | ||||
[email protected] | b54f2c338 | 2013-08-24 00:03:49 | [diff] [blame] | 43 | } |