Home | History | Annotate | Download | only in core

Lines Matching refs:Block

20 struct SkChunkAlloc::Block {
21 Block* fNext;
31 Block* block = this;
32 while (block) {
33 Block* next = block->fNext;
34 sk_free(block);
35 block = next;
39 Block* tail() {
40 Block* block = this;
41 if (block) {
43 Block* next = block->fNext;
47 block = next;
50 return block;
85 SkChunkAlloc::Block* SkChunkAlloc::newBlock(size_t bytes, AllocFailType ftype) {
86 Block* block = fPool;
88 if (block && bytes <= block->fFreeSize) {
89 fPool = block->fNext;
90 return block;
97 block = (Block*)sk_malloc_flags(sizeof(Block) + size,
100 if (block) {
101 // block->fNext = fBlock;
102 block->fFreeSize = size;
103 block->fFreePtr = block->startOfData();
107 return block;
113 Block* block = fBlock;
115 if (block == NULL || bytes > block->fFreeSize) {
116 block = this->newBlock(bytes, ftype);
117 if (NULL == block) {
120 block->fNext = fBlock;
121 fBlock = block;
124 SkASSERT(block && bytes <= block->fFreeSize);
125 void* ptr = block->fFreePtr;
127 block->fFreeSize -= bytes;
128 block->fFreePtr += bytes;
134 Block* block = fBlock;
135 if (block) {
137 char* start = block->startOfData();
138 if (start <= cPtr && cPtr < block->fFreePtr) {
139 bytes = block->fFreePtr - cPtr;
140 block->fFreeSize += bytes;
141 block->fFreePtr = cPtr;
148 const Block* block = fBlock;
149 while (block) {
150 if (block->contains(addr)) {
153 block = block->fNext;