remove GrAllocPool
authorjoshualitt <joshualitt@chromium.org>
Fri, 21 Nov 2014 17:03:45 +0000 (09:03 -0800)
committerCommit bot <commit-bot@chromium.org>
Fri, 21 Nov 2014 17:03:45 +0000 (09:03 -0800)
BUG=skia:

Review URL: https://codereview.chromium.org/742253002

gyp/gpu.gypi
src/gpu/GrAADistanceFieldPathRenderer.h
src/gpu/GrAllocPool.cpp [deleted file]
src/gpu/GrAllocPool.h [deleted file]
src/gpu/GrTextStrike.cpp
src/gpu/GrTextStrike.h

index 4690f62..0cef7c7 100644 (file)
@@ -52,8 +52,6 @@
       '<(skia_src_path)/gpu/GrAARectRenderer.h',
       '<(skia_src_path)/gpu/GrAddPathRenderers_default.cpp',
       '<(skia_src_path)/gpu/GrAllocator.h',
-      '<(skia_src_path)/gpu/GrAllocPool.h',
-      '<(skia_src_path)/gpu/GrAllocPool.cpp',
       '<(skia_src_path)/gpu/GrAtlas.cpp',
       '<(skia_src_path)/gpu/GrAtlas.h',
       '<(skia_src_path)/gpu/GrBitmapTextContext.cpp',
index e9a32dc..88c9d32 100755 (executable)
@@ -9,7 +9,6 @@
 #ifndef GrAADistanceFieldPathRenderer_DEFINED
 #define GrAADistanceFieldPathRenderer_DEFINED
 
-#include "GrAllocPool.h"
 #include "GrAtlas.h"
 #include "GrPathRenderer.h"
 #include "GrRect.h"
diff --git a/src/gpu/GrAllocPool.cpp b/src/gpu/GrAllocPool.cpp
deleted file mode 100644 (file)
index 9594c94..0000000
+++ /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
diff --git a/src/gpu/GrAllocPool.h b/src/gpu/GrAllocPool.h
deleted file mode 100644 (file)
index 4fc8265..0000000
+++ /dev/null
@@ -1,60 +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.
- */
-
-#ifndef GrAllocPool_DEFINED
-#define GrAllocPool_DEFINED
-
-#include "SkTypes.h"
-
-class GrAllocPool : SkNoncopyable {
-public:
-    GrAllocPool(size_t blockSize = 0);
-    ~GrAllocPool();
-
-    /**
-     *  Frees all blocks that have been allocated with alloc().
-     */
-    void reset();
-
-    /**
-     *  Returns a block of memory bytes size big. This address must not be
-     *  passed to realloc/free/delete or any other function that assumes the
-     *  address was allocated by malloc or new (because it hasn't).
-     */
-    void* alloc(size_t bytes);
-
-    /**
-     * Releases the most recently allocated bytes back to allocpool.
-     */
-    void release(size_t bytes);
-
-private:
-    struct Block;
-
-    Block*  fBlock;
-    size_t  fMinBlockSize;
-
-#ifdef SK_DEBUG
-    int fBlocksAllocated;
-    void validate() const;
-#else
-    void validate() const {}
-#endif
-};
-
-template <typename T> class GrTAllocPool {
-public:
-    GrTAllocPool(int count) : fPool(count * sizeof(T)) {}
-
-    void reset() { fPool.reset(); }
-    T* alloc() { return (T*)fPool.alloc(sizeof(T)); }
-
-private:
-    GrAllocPool fPool;
-};
-
-#endif
index 0186af1..aa5cd94 100644 (file)
@@ -227,7 +227,7 @@ void GrFontCache::dump() const {
     atlas and a position within that texture.
  */
 
-GrTextStrike::GrTextStrike(GrFontCache* cache, const GrFontDescKey* key) : fPool(64) {
+GrTextStrike::GrTextStrike(GrFontCache* cache, const GrFontDescKey* key) {
     fFontScalerKey = key;
     fFontScalerKey->ref();
 
@@ -267,7 +267,7 @@ GrGlyph* GrTextStrike::generateGlyph(GrGlyph::PackedID packed,
     }
     GrMaskFormat format = scaler->getPackedGlyphMaskFormat(packed);
     
-    GrGlyph* glyph = fPool.alloc();
+    GrGlyph* glyph = (GrGlyph*)fPool.alloc(sizeof(GrGlyph), SK_MALLOC_THROW);
     glyph->init(packed, bounds, format);
     fCache.add(glyph);
     return glyph;
index 779d676..09d7323 100644 (file)
 #ifndef GrTextStrike_DEFINED
 #define GrTextStrike_DEFINED
 
-#include "GrAllocPool.h"
+#include "GrAtlas.h"
+#include "GrDrawTarget.h"
 #include "GrFontScaler.h"
-#include "SkTDynamicHash.h"
 #include "GrGlyph.h"
-#include "GrDrawTarget.h"
-#include "GrAtlas.h"
+#include "SkTDynamicHash.h"
+#include "SkVarAlloc.h"
 
 class GrFontCache;
 class GrGpu;
@@ -62,7 +62,7 @@ public:
 private:
     SkTDynamicHash<GrGlyph, GrGlyph::PackedID> fCache;
     const GrFontDescKey* fFontScalerKey;
-    GrTAllocPool<GrGlyph> fPool;
+    SkVarAlloc fPool;
 
     GrFontCache*    fFontCache;
     bool            fUseDistanceField;