Lines Matching +full:- +full:dm
4 * Use of this source code is governed by a BSD-style license that can be
26 * This non-global pool can be used for unit tests to verify that the
36 return this->make(bytes).release(); // TODO: change API in create()
65 void removeFromPool(PoolDiscardableMemory* dm);
67 bool lock(PoolDiscardableMemory* dm);
69 void unlock(PoolDiscardableMemory* dm);
107 fPool->removeFromPool(this); in ~PoolDiscardableMemory()
112 return fPool->lock(this); in lock()
122 fPool->unlock(this); in unlock()
151 if (!cur->fLocked) { in dumpDownTo()
152 PoolDiscardableMemory* dm = cur; in dumpDownTo() local
153 SkASSERT(dm->fPointer != nullptr); in dumpDownTo()
154 dm->fPointer = nullptr; in dumpDownTo()
155 SkASSERT(fUsed >= dm->fBytes); in dumpDownTo()
156 fUsed -= dm->fBytes; in dumpDownTo()
160 fList.remove(dm); in dumpDownTo()
172 auto dm = std::make_unique<PoolDiscardableMemory>(sk_ref_sp(this), std::move(addr), bytes); in make() local
174 fList.addToHead(dm.get()); in make()
176 this->dumpDownTo(fBudget); in make()
177 return dm; in make()
180 void DiscardableMemoryPool::removeFromPool(PoolDiscardableMemory* dm) { in removeFromPool() argument
182 // This is called by dm's destructor. in removeFromPool()
183 if (dm->fPointer != nullptr) { in removeFromPool()
184 SkASSERT(fUsed >= dm->fBytes); in removeFromPool()
185 fUsed -= dm->fBytes; in removeFromPool()
186 fList.remove(dm); in removeFromPool()
188 SkASSERT(!fList.isInList(dm)); in removeFromPool()
192 bool DiscardableMemoryPool::lock(PoolDiscardableMemory* dm) { in lock() argument
193 SkASSERT(dm != nullptr); in lock()
195 if (nullptr == dm->fPointer) { in lock()
202 dm->fLocked = true; in lock()
203 fList.remove(dm); in lock()
204 fList.addToHead(dm); in lock()
211 void DiscardableMemoryPool::unlock(PoolDiscardableMemory* dm) { in unlock() argument
212 SkASSERT(dm != nullptr); in unlock()
214 dm->fLocked = false; in unlock()
215 this->dumpDownTo(fBudget); in unlock()
224 this->dumpDownTo(fBudget); in setRAMBudget()
228 this->dumpDownTo(0); in dumpPool()