| Index: third_party/WebKit/Source/platform/heap/CallbackStack.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/CallbackStack.h b/third_party/WebKit/Source/platform/heap/CallbackStack.h
|
| index 0d60ebc3da73d0ae7f40f3fdca1ab4f4db56057d..4d24b043b1bac49315fca35cf20b92596fc07353 100644
|
| --- a/third_party/WebKit/Source/platform/heap/CallbackStack.h
|
| +++ b/third_party/WebKit/Source/platform/heap/CallbackStack.h
|
| @@ -37,7 +37,7 @@ public:
|
| VisitorCallback m_callback;
|
| };
|
|
|
| - CallbackStack();
|
| + explicit CallbackStack(size_t);
|
| ~CallbackStack();
|
|
|
| void clear();
|
| @@ -54,39 +54,23 @@ public:
|
| #endif
|
|
|
| private:
|
| - static const size_t blockSize = 8192;
|
| -
|
| class Block {
|
| USING_FAST_MALLOC(Block);
|
| public:
|
| - explicit Block(Block* next)
|
| - : m_limit(&(m_buffer[blockSize]))
|
| - , m_current(&(m_buffer[0]))
|
| - , m_next(next)
|
| - {
|
| - clearUnused();
|
| - }
|
| -
|
| - ~Block()
|
| - {
|
| - clearUnused();
|
| - }
|
| + explicit Block(Block*, size_t);
|
| + ~Block();
|
|
|
| void clear();
|
|
|
| Block* next() const { return m_next; }
|
| void setNext(Block* next) { m_next = next; }
|
| + size_t blockSize() const { return m_blockSize; }
|
|
|
| bool isEmptyBlock() const
|
| {
|
| return m_current == &(m_buffer[0]);
|
| }
|
|
|
| - size_t size() const
|
| - {
|
| - return blockSize - (m_limit - m_current);
|
| - }
|
| -
|
| Item* allocateEntry()
|
| {
|
| if (LIKELY(m_current < m_limit))
|
| @@ -109,10 +93,11 @@ private:
|
| private:
|
| void clearUnused();
|
|
|
| - Item m_buffer[blockSize];
|
| + Item* m_buffer;
|
| Item* m_limit;
|
| Item* m_current;
|
| Block* m_next;
|
| + size_t m_blockSize;
|
| };
|
|
|
| Item* popSlow();
|
|
|