| Index: src/gpu/GrAllocPool.cpp
|
| diff --git a/src/gpu/GrAllocPool.cpp b/src/gpu/GrAllocPool.cpp
|
| deleted file mode 100644
|
| index 9594c940575c33f044090d49a7632b2f49159a45..0000000000000000000000000000000000000000
|
| --- a/src/gpu/GrAllocPool.cpp
|
| +++ /dev/null
|
| @@ -1,116 +0,0 @@
|
| -/*
|
| - * Copyright 2010 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "GrAllocPool.h"
|
| -
|
| -#include "GrTypes.h"
|
| -
|
| -#define GrAllocPool_MIN_BLOCK_SIZE ((size_t)128)
|
| -
|
| -struct GrAllocPool::Block {
|
| - Block* fNext;
|
| - char* fPtr;
|
| - size_t fBytesFree;
|
| - size_t fBytesTotal;
|
| -
|
| - static Block* Create(size_t size, Block* next) {
|
| - SkASSERT(size >= GrAllocPool_MIN_BLOCK_SIZE);
|
| -
|
| - Block* block = (Block*)sk_malloc_throw(sizeof(Block) + size);
|
| - block->fNext = next;
|
| - block->fPtr = (char*)block + sizeof(Block);
|
| - block->fBytesFree = size;
|
| - block->fBytesTotal = size;
|
| - return block;
|
| - }
|
| -
|
| - bool canAlloc(size_t bytes) const {
|
| - return bytes <= fBytesFree;
|
| - }
|
| -
|
| - void* alloc(size_t bytes) {
|
| - SkASSERT(bytes <= fBytesFree);
|
| - fBytesFree -= bytes;
|
| - void* ptr = fPtr;
|
| - fPtr += bytes;
|
| - return ptr;
|
| - }
|
| -
|
| - size_t release(size_t bytes) {
|
| - SkASSERT(bytes > 0);
|
| - size_t free = SkTMin(bytes, fBytesTotal - fBytesFree);
|
| - fBytesFree += free;
|
| - fPtr -= free;
|
| - return bytes - free;
|
| - }
|
| -
|
| - bool empty() const { return fBytesTotal == fBytesFree; }
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -GrAllocPool::GrAllocPool(size_t blockSize) {
|
| - fBlock = NULL;
|
| - fMinBlockSize = SkTMax(blockSize, GrAllocPool_MIN_BLOCK_SIZE);
|
| - SkDEBUGCODE(fBlocksAllocated = 0;)
|
| -}
|
| -
|
| -GrAllocPool::~GrAllocPool() {
|
| - this->reset();
|
| -}
|
| -
|
| -void GrAllocPool::reset() {
|
| - this->validate();
|
| -
|
| - Block* block = fBlock;
|
| - while (block) {
|
| - Block* next = block->fNext;
|
| - sk_free(block);
|
| - block = next;
|
| - }
|
| - fBlock = NULL;
|
| - SkDEBUGCODE(fBlocksAllocated = 0;)
|
| -}
|
| -
|
| -void* GrAllocPool::alloc(size_t size) {
|
| - this->validate();
|
| -
|
| - if (!fBlock || !fBlock->canAlloc(size)) {
|
| - size_t blockSize = SkTMax(fMinBlockSize, size);
|
| - fBlock = Block::Create(blockSize, fBlock);
|
| - SkDEBUGCODE(fBlocksAllocated += 1;)
|
| - }
|
| - return fBlock->alloc(size);
|
| -}
|
| -
|
| -void GrAllocPool::release(size_t bytes) {
|
| - this->validate();
|
| -
|
| - while (bytes && fBlock) {
|
| - bytes = fBlock->release(bytes);
|
| - if (fBlock->empty()) {
|
| - Block* next = fBlock->fNext;
|
| - sk_free(fBlock);
|
| - fBlock = next;
|
| - SkDEBUGCODE(fBlocksAllocated -= 1;)
|
| - }
|
| - }
|
| -}
|
| -
|
| -#ifdef SK_DEBUG
|
| -
|
| -void GrAllocPool::validate() const {
|
| - Block* block = fBlock;
|
| - int count = 0;
|
| - while (block) {
|
| - count += 1;
|
| - block = block->fNext;
|
| - }
|
| - SkASSERT(fBlocksAllocated == count);
|
| -}
|
| -
|
| -#endif
|
|
|