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 b961e91a6863005459710176537ac1cf949b0bae..0d60ebc3da73d0ae7f40f3fdca1ab4f4db56057d 100644 |
--- a/third_party/WebKit/Source/platform/heap/CallbackStack.h |
+++ b/third_party/WebKit/Source/platform/heap/CallbackStack.h |
@@ -41,7 +41,6 @@ |
~CallbackStack(); |
void clear(); |
- void decommit(); |
Item* allocateEntry(); |
Item* pop(); |
@@ -55,15 +54,25 @@ |
#endif |
private: |
- static const size_t blockSize = (1 << 13); |
+ static const size_t blockSize = 8192; |
class Block { |
USING_FAST_MALLOC(Block); |
public: |
- explicit Block(Block* next); |
- ~Block(); |
+ explicit Block(Block* next) |
+ : m_limit(&(m_buffer[blockSize])) |
+ , m_current(&(m_buffer[0])) |
+ , m_next(next) |
+ { |
+ clearUnused(); |
+ } |
- void decommit(); |
+ ~Block() |
+ { |
+ clearUnused(); |
+ } |
+ |
+ void clear(); |
Block* next() const { return m_next; } |
void setNext(Block* next) { m_next = next; } |
@@ -71,6 +80,11 @@ |
bool isEmptyBlock() const |
{ |
return m_current == &(m_buffer[0]); |
+ } |
+ |
+ size_t size() const |
+ { |
+ return blockSize - (m_limit - m_current); |
} |
Item* allocateEntry() |
@@ -93,7 +107,9 @@ |
#endif |
private: |
- Item* m_buffer; |
+ void clearUnused(); |
+ |
+ Item m_buffer[blockSize]; |
Item* m_limit; |
Item* m_current; |
Block* m_next; |