| Index: include/core/SkTDStack.h
|
| diff --git a/include/core/SkTDStack.h b/include/core/SkTDStack.h
|
| deleted file mode 100644
|
| index e286e4a03ac5f1b02c520f7cdbc7b2c599d17174..0000000000000000000000000000000000000000
|
| --- a/include/core/SkTDStack.h
|
| +++ /dev/null
|
| @@ -1,110 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2006 The Android Open Source Project
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -
|
| -#ifndef SkTDStack_DEFINED
|
| -#define SkTDStack_DEFINED
|
| -
|
| -#include "SkTypes.h"
|
| -
|
| -template <typename T> class SkTDStack : SkNoncopyable {
|
| -public:
|
| - SkTDStack() : fCount(0), fTotalCount(0) {
|
| - fInitialRec.fNext = NULL;
|
| - fRec = &fInitialRec;
|
| -
|
| - // fCount = kSlotCount;
|
| - }
|
| -
|
| - ~SkTDStack() {
|
| - Rec* rec = fRec;
|
| - while (rec != &fInitialRec) {
|
| - Rec* next = rec->fNext;
|
| - sk_free(rec);
|
| - rec = next;
|
| - }
|
| - }
|
| -
|
| - int count() const { return fTotalCount; }
|
| - int depth() const { return fTotalCount; }
|
| - bool empty() const { return fTotalCount == 0; }
|
| -
|
| - T* push() {
|
| - SkASSERT(fCount <= kSlotCount);
|
| - if (fCount == kSlotCount) {
|
| - Rec* rec = (Rec*)sk_malloc_throw(sizeof(Rec));
|
| - rec->fNext = fRec;
|
| - fRec = rec;
|
| - fCount = 0;
|
| - }
|
| - ++fTotalCount;
|
| - return &fRec->fSlots[fCount++];
|
| - }
|
| -
|
| - void push(const T& elem) { *this->push() = elem; }
|
| -
|
| - const T& index(int idx) const {
|
| - SkASSERT(fRec && fCount > idx);
|
| - return fRec->fSlots[fCount - idx - 1];
|
| - }
|
| -
|
| - T& index(int idx) {
|
| - SkASSERT(fRec && fCount > idx);
|
| - return fRec->fSlots[fCount - idx - 1];
|
| - }
|
| -
|
| - const T& top() const {
|
| - SkASSERT(fRec && fCount > 0);
|
| - return fRec->fSlots[fCount - 1];
|
| - }
|
| -
|
| - T& top() {
|
| - SkASSERT(fRec && fCount > 0);
|
| - return fRec->fSlots[fCount - 1];
|
| - }
|
| -
|
| - void pop(T* elem) {
|
| - if (elem) {
|
| - *elem = fRec->fSlots[fCount - 1];
|
| - }
|
| - this->pop();
|
| - }
|
| -
|
| - void pop() {
|
| - SkASSERT(fCount > 0 && fRec);
|
| - --fTotalCount;
|
| - if (--fCount == 0) {
|
| - if (fRec != &fInitialRec) {
|
| - Rec* rec = fRec->fNext;
|
| - sk_free(fRec);
|
| - fCount = kSlotCount;
|
| - fRec = rec;
|
| - } else {
|
| - SkASSERT(fTotalCount == 0);
|
| - }
|
| - }
|
| - }
|
| -
|
| -private:
|
| - enum {
|
| - kSlotCount = 8
|
| - };
|
| -
|
| - struct Rec;
|
| - friend struct Rec;
|
| -
|
| - struct Rec {
|
| - Rec* fNext;
|
| - T fSlots[kSlotCount];
|
| - };
|
| - Rec fInitialRec;
|
| - Rec* fRec;
|
| - int fCount, fTotalCount;
|
| -};
|
| -
|
| -#endif
|
|
|