Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: base/memory/discardable_memory_mac.cc

Issue 614103004: replace 'virtual ... OVERRIDE' with '... override' (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: process base/ Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/discardable_memory.h" 5 #include "base/memory/discardable_memory.h"
6 6
7 #include <mach/mach.h> 7 #include <mach/mach.h>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 bool Initialize() { return Lock() != DISCARDABLE_MEMORY_LOCK_STATUS_FAILED; } 50 bool Initialize() { return Lock() != DISCARDABLE_MEMORY_LOCK_STATUS_FAILED; }
51 51
52 virtual ~DiscardableMemoryMac() { 52 virtual ~DiscardableMemoryMac() {
53 if (is_locked_) 53 if (is_locked_)
54 Unlock(); 54 Unlock();
55 g_shared_state.Pointer()->manager.Unregister(this); 55 g_shared_state.Pointer()->manager.Unregister(this);
56 } 56 }
57 57
58 // Overridden from DiscardableMemory: 58 // Overridden from DiscardableMemory:
59 virtual DiscardableMemoryLockStatus Lock() OVERRIDE { 59 DiscardableMemoryLockStatus Lock() override {
60 DCHECK(!is_locked_); 60 DCHECK(!is_locked_);
61 61
62 bool purged = false; 62 bool purged = false;
63 if (!g_shared_state.Pointer()->manager.AcquireLock(this, &purged)) 63 if (!g_shared_state.Pointer()->manager.AcquireLock(this, &purged))
64 return DISCARDABLE_MEMORY_LOCK_STATUS_FAILED; 64 return DISCARDABLE_MEMORY_LOCK_STATUS_FAILED;
65 65
66 is_locked_ = true; 66 is_locked_ = true;
67 return purged ? DISCARDABLE_MEMORY_LOCK_STATUS_PURGED 67 return purged ? DISCARDABLE_MEMORY_LOCK_STATUS_PURGED
68 : DISCARDABLE_MEMORY_LOCK_STATUS_SUCCESS; 68 : DISCARDABLE_MEMORY_LOCK_STATUS_SUCCESS;
69 } 69 }
70 70
71 virtual void Unlock() OVERRIDE { 71 void Unlock() override {
72 DCHECK(is_locked_); 72 DCHECK(is_locked_);
73 g_shared_state.Pointer()->manager.ReleaseLock(this); 73 g_shared_state.Pointer()->manager.ReleaseLock(this);
74 is_locked_ = false; 74 is_locked_ = false;
75 } 75 }
76 76
77 virtual void* Memory() const OVERRIDE { 77 void* Memory() const override {
78 DCHECK(is_locked_); 78 DCHECK(is_locked_);
79 return reinterpret_cast<void*>(memory_.address()); 79 return reinterpret_cast<void*>(memory_.address());
80 } 80 }
81 81
82 // Overridden from internal::DiscardableMemoryManagerAllocation: 82 // Overridden from internal::DiscardableMemoryManagerAllocation:
83 virtual bool AllocateAndAcquireLock() OVERRIDE { 83 bool AllocateAndAcquireLock() override {
84 kern_return_t ret; 84 kern_return_t ret;
85 bool persistent; 85 bool persistent;
86 if (!memory_.size()) { 86 if (!memory_.size()) {
87 vm_address_t address = 0; 87 vm_address_t address = 0;
88 ret = vm_allocate( 88 ret = vm_allocate(
89 mach_task_self(), 89 mach_task_self(),
90 &address, 90 &address,
91 bytes_, 91 bytes_,
92 VM_FLAGS_ANYWHERE | VM_FLAGS_PURGABLE | kDiscardableMemoryTag); 92 VM_FLAGS_ANYWHERE | VM_FLAGS_PURGABLE | kDiscardableMemoryTag);
93 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_allocate"; 93 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_allocate";
(...skipping 22 matching lines...) Expand all
116 memory_.address(), 116 memory_.address(),
117 VM_PURGABLE_SET_STATE, 117 VM_PURGABLE_SET_STATE,
118 &state); 118 &state);
119 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_purgable_control"; 119 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_purgable_control";
120 if (state & VM_PURGABLE_EMPTY) 120 if (state & VM_PURGABLE_EMPTY)
121 persistent = false; 121 persistent = false;
122 122
123 return persistent; 123 return persistent;
124 } 124 }
125 125
126 virtual void ReleaseLock() OVERRIDE { 126 void ReleaseLock() override {
127 int state = VM_PURGABLE_VOLATILE | VM_VOLATILE_GROUP_DEFAULT; 127 int state = VM_PURGABLE_VOLATILE | VM_VOLATILE_GROUP_DEFAULT;
128 kern_return_t ret = vm_purgable_control(mach_task_self(), 128 kern_return_t ret = vm_purgable_control(mach_task_self(),
129 memory_.address(), 129 memory_.address(),
130 VM_PURGABLE_SET_STATE, 130 VM_PURGABLE_SET_STATE,
131 &state); 131 &state);
132 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_purgable_control"; 132 MACH_CHECK(ret == KERN_SUCCESS, ret) << "vm_purgable_control";
133 133
134 #if !defined(NDEBUG) 134 #if !defined(NDEBUG)
135 ret = vm_protect(mach_task_self(), 135 ret = vm_protect(mach_task_self(),
136 memory_.address(), 136 memory_.address(),
137 memory_.size(), 137 memory_.size(),
138 FALSE, 138 FALSE,
139 VM_PROT_NONE); 139 VM_PROT_NONE);
140 MACH_DCHECK(ret == KERN_SUCCESS, ret) << "vm_protect"; 140 MACH_DCHECK(ret == KERN_SUCCESS, ret) << "vm_protect";
141 #endif 141 #endif
142 } 142 }
143 143
144 virtual void Purge() OVERRIDE { 144 void Purge() override { memory_.reset(); }
145 memory_.reset();
146 }
147 145
148 private: 146 private:
149 mac::ScopedMachVM memory_; 147 mac::ScopedMachVM memory_;
150 const size_t bytes_; 148 const size_t bytes_;
151 bool is_locked_; 149 bool is_locked_;
152 150
153 DISALLOW_COPY_AND_ASSIGN(DiscardableMemoryMac); 151 DISALLOW_COPY_AND_ASSIGN(DiscardableMemoryMac);
154 }; 152 };
155 153
156 } // namespace 154 } // namespace
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 } 206 }
209 207
210 // static 208 // static
211 void DiscardableMemory::PurgeForTesting() { 209 void DiscardableMemory::PurgeForTesting() {
212 int state = 0; 210 int state = 0;
213 vm_purgable_control(mach_task_self(), 0, VM_PURGABLE_PURGE_ALL, &state); 211 vm_purgable_control(mach_task_self(), 0, VM_PURGABLE_PURGE_ALL, &state);
214 internal::DiscardableMemoryEmulated::PurgeForTesting(); 212 internal::DiscardableMemoryEmulated::PurgeForTesting();
215 } 213 }
216 214
217 } // namespace base 215 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698