summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/heap/HandleBlockInlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/heap/HandleBlockInlines.h')
-rw-r--r--Source/JavaScriptCore/heap/HandleBlockInlines.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/heap/HandleBlockInlines.h b/Source/JavaScriptCore/heap/HandleBlockInlines.h
index 7c771935e..9e29bffd1 100644
--- a/Source/JavaScriptCore/heap/HandleBlockInlines.h
+++ b/Source/JavaScriptCore/heap/HandleBlockInlines.h
@@ -26,26 +26,31 @@
#ifndef HandleBlockInlines_h
#define HandleBlockInlines_h
-#include "BlockAllocator.h"
#include "HandleBlock.h"
+#include <wtf/FastMalloc.h>
namespace JSC {
-inline HandleBlock* HandleBlock::create(DeadBlock* block, HandleSet* handleSet)
+inline HandleBlock* HandleBlock::create(HandleSet* handleSet)
{
- Region* region = block->region();
- return new (NotNull, block) HandleBlock(region, handleSet);
+ return new (NotNull, fastAlignedMalloc(blockSize, blockSize)) HandleBlock(handleSet);
}
-inline HandleBlock::HandleBlock(Region* region, HandleSet* handleSet)
- : HeapBlock<HandleBlock>(region)
+inline void HandleBlock::destroy(HandleBlock* block)
+{
+ block->~HandleBlock();
+ fastAlignedFree(block);
+}
+
+inline HandleBlock::HandleBlock(HandleSet* handleSet)
+ : DoublyLinkedListNode<HandleBlock>()
, m_handleSet(handleSet)
{
}
inline char* HandleBlock::payloadEnd()
{
- return reinterpret_cast<char*>(this) + region()->blockSize();
+ return reinterpret_cast<char*>(this) + blockSize;
}
inline char* HandleBlock::payload()