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

Unified Diff: src/gpu/GrMemoryPool.cpp

Issue 742253002: remove GrAllocPool (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update to use SkVarAlloc Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrMemoryPool.cpp
diff --git a/src/gpu/GrMemoryPool.cpp b/src/gpu/GrMemoryPool.cpp
index 5009f20152d5d7813956d4539f7e86c21adc7a48..ea64c2994af82dd195b3a22460580ec2eff674b7 100644
--- a/src/gpu/GrMemoryPool.cpp
+++ b/src/gpu/GrMemoryPool.cpp
@@ -102,6 +102,27 @@ void GrMemoryPool::release(void* p) {
VALIDATE;
}
+void GrMemoryPool::releaseAll() {
+ VALIDATE;
+ while (fTail->fPrev) {
+ BlockHeader* prev = fTail->fPrev;
+ SkDEBUGCODE(fAllocationCnt -= fTail->fLiveCount);
+ DeleteBlock(fTail);
+ fTail = prev;
+ fTail->fNext = NULL;
+ }
+ // now 'free' head block
+ SkDEBUGCODE(fAllocationCnt -= fHead->fLiveCount);
+ fHead->fCurrPtr = reinterpret_cast<intptr_t>(fHead) +
+ kHeaderSize;
+ fHead->fLiveCount = 0;
+ fHead->fFreeSize = fPreallocSize;
+ SkASSERT(0 == fAllocationCnt);
+ SkASSERT(fHead == fTail);
+ SkASSERT(0 == fHead->fLiveCount);
+ VALIDATE;
+}
+
GrMemoryPool::BlockHeader* GrMemoryPool::CreateBlock(size_t size) {
BlockHeader* block =
reinterpret_cast<BlockHeader*>(sk_malloc_throw(size + kHeaderSize));
« no previous file with comments | « src/gpu/GrMemoryPool.h ('k') | src/gpu/GrTextStrike.h » ('j') | src/gpu/GrTextStrike.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698