| Index: src/gpu/GrAllocator.h
|
| diff --git a/src/gpu/GrAllocator.h b/src/gpu/GrAllocator.h
|
| index 933be9f655aeb62c14c5d152cdd0d754c0cbf99d..37c123f7936c097558896eabfb9a349d2ced488f 100644
|
| --- a/src/gpu/GrAllocator.h
|
| +++ b/src/gpu/GrAllocator.h
|
| @@ -61,6 +61,24 @@ public:
|
| }
|
|
|
| /**
|
| + * Remove the last item, only call if count() != 0
|
| + */
|
| + void pop_back() {
|
| + SkASSERT(fCount);
|
| + SkASSERT(fInsertionIndexInBlock > 0);
|
| + --fInsertionIndexInBlock;
|
| + --fCount;
|
| + if (0 == fInsertionIndexInBlock) {
|
| + // Never delete the first block
|
| + if (fBlocks.count() > 1) {
|
| + sk_free(fBlocks.back());
|
| + fBlocks.pop_back();
|
| + fInsertionIndexInBlock = fItemsPerBlock;
|
| + }
|
| + }
|
| + }
|
| +
|
| + /**
|
| * Removes all added items.
|
| */
|
| void reset() {
|
| @@ -109,7 +127,6 @@ public:
|
| return (const char*)(fBlocks.back()) + (fInsertionIndexInBlock - 1) * fItemSize;
|
| }
|
|
|
| -
|
| /**
|
| * Iterates through the allocator. This is faster than using operator[] when walking linearly
|
| * through the allocator.
|
| @@ -240,6 +257,14 @@ public:
|
| }
|
|
|
| /**
|
| + * Remove the last item, only call if count() != 0
|
| + */
|
| + void pop_back() {
|
| + this->back().~T();
|
| + fAllocator.pop_back();
|
| + }
|
| +
|
| + /**
|
| * Removes all added items.
|
| */
|
| void reset() {
|
|
|