Docserver: Skip to version 3-45-2. There was a test instance already uploaded
[chromium-blink-merge.git] / base / memory / discardable_memory_win.cc
blob6a9a28df2dc6fb9bdb10c5065e444b047e00aad9
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.
5 #include "base/memory/discardable_memory.h"
7 #include "base/logging.h"
8 #include "base/memory/discardable_memory_emulated.h"
10 namespace base {
12 // static
13 bool DiscardableMemory::ReduceMemoryUsage() {
14 return internal::DiscardableMemoryEmulated::ReduceMemoryUsage();
17 // static
18 void DiscardableMemory::GetSupportedTypes(
19 std::vector<DiscardableMemoryType>* types) {
20 const DiscardableMemoryType supported_types[] = {
21 DISCARDABLE_MEMORY_TYPE_EMULATED
23 types->assign(supported_types, supported_types + arraysize(supported_types));
26 // static
27 scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType(
28 DiscardableMemoryType type, size_t size) {
29 switch (type) {
30 case DISCARDABLE_MEMORY_TYPE_EMULATED: {
31 scoped_ptr<internal::DiscardableMemoryEmulated> memory(
32 new internal::DiscardableMemoryEmulated(size));
33 if (!memory->Initialize())
34 return nullptr;
36 return memory.Pass();
38 case DISCARDABLE_MEMORY_TYPE_NONE:
39 case DISCARDABLE_MEMORY_TYPE_ASHMEM:
40 case DISCARDABLE_MEMORY_TYPE_MACH:
41 NOTREACHED();
42 return nullptr;
45 NOTREACHED();
46 return nullptr;
49 // static
50 void DiscardableMemory::PurgeForTesting() {
51 internal::DiscardableMemoryEmulated::PurgeForTesting();
54 } // namespace base