webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Static Public Member Functions | Friends | List of all members
JSC::MarkedAllocator Class Reference

#include <MarkedAllocator.h>

Public Member Functions

 MarkedAllocator (Heap *, Subspace *, size_t cellSize)
 
void lastChanceToFinalize ()
 
void prepareForAllocation ()
 
void stopAllocating ()
 
void resumeAllocating ()
 
void beginMarkingForFullCollection ()
 
void endMarking ()
 
void snapshotUnsweptForEdenCollection ()
 
void snapshotUnsweptForFullCollection ()
 
void sweep ()
 
void shrink ()
 
void assertNoUnswept ()
 
size_t cellSize () const
 
const AllocatorAttributesattributes () const
 
bool needsDestruction () const
 
DestructionMode destruction () const
 
HeapCell::Kind cellKind () const
 
voidallocate (GCDeferralContext *=nullptr)
 
voidtryAllocate (GCDeferralContext *=nullptr)
 
Heapheap ()
 
MarkedBlock::HandletakeLastActiveBlock ()
 
template<typename Functor >
void forEachBlock (const Functor &)
 
template<typename Functor >
void forEachNotEmptyBlock (const Functor &)
 
void addBlock (MarkedBlock::Handle *)
 
void removeBlock (MarkedBlock::Handle *)
 
bool isPagedOut (double deadline)
 
Lock & bitvectorLock ()
 
template<typename Func >
void forEachBitVector (const AbstractLocker &, const Func &func)
 
template<typename Func >
void forEachBitVectorWithName (const AbstractLocker &, const Func &func)
 
MarkedAllocatornextAllocator () const
 
MarkedAllocatornextAllocatorInSubspace () const
 
void setNextAllocator (MarkedAllocator *allocator)
 
void setNextAllocatorInSubspace (MarkedAllocator *allocator)
 
MarkedBlock::HandlefindEmptyBlockToSteal ()
 
MarkedBlock::HandlefindBlockToSweep ()
 
Subspacesubspace () const
 
MarkedSpacemarkedSpace () const
 
void dump (PrintStream &) const
 
void dumpBits (PrintStream &=WTF::dataFile())
 
 MarkedAllocator (Heap *, Subspace *, size_t cellSize)
 
void lastChanceToFinalize ()
 
void prepareForAllocation ()
 
void stopAllocating ()
 
void resumeAllocating ()
 
void beginMarkingForFullCollection ()
 
void endMarking ()
 
void snapshotUnsweptForEdenCollection ()
 
void snapshotUnsweptForFullCollection ()
 
void sweep ()
 
void shrink ()
 
void assertNoUnswept ()
 
size_t cellSize () const
 
const AllocatorAttributesattributes () const
 
bool needsDestruction () const
 
DestructionMode destruction () const
 
HeapCell::Kind cellKind () const
 
voidallocate (GCDeferralContext *=nullptr)
 
voidtryAllocate (GCDeferralContext *=nullptr)
 
Heapheap ()
 
MarkedBlock::HandletakeLastActiveBlock ()
 
template<typename Functor >
void forEachBlock (const Functor &)
 
template<typename Functor >
void forEachNotEmptyBlock (const Functor &)
 
void addBlock (MarkedBlock::Handle *)
 
void removeBlock (MarkedBlock::Handle *)
 
bool isPagedOut (double deadline)
 
Lock & bitvectorLock ()
 
template<typename Func >
void forEachBitVector (const AbstractLocker &, const Func &func)
 
template<typename Func >
void forEachBitVectorWithName (const AbstractLocker &, const Func &func)
 
MarkedAllocatornextAllocator () const
 
MarkedAllocatornextAllocatorInSubspace () const
 
void setNextAllocator (MarkedAllocator *allocator)
 
void setNextAllocatorInSubspace (MarkedAllocator *allocator)
 
MarkedBlock::HandlefindEmptyBlockToSteal ()
 
MarkedBlock::HandlefindBlockToSweep ()
 
Subspacesubspace () const
 
MarkedSpacemarkedSpace () const
 
void dump (PrintStream &) const
 
void dumpBits (PrintStream &=WTF::dataFile())
 

Static Public Member Functions

static ptrdiff_t offsetOfFreeList ()
 
static ptrdiff_t offsetOfCellSize ()
 
static size_t blockSizeForBytes (size_t)
 
static ptrdiff_t offsetOfFreeList ()
 
static ptrdiff_t offsetOfCellSize ()
 
static size_t blockSizeForBytes (size_t)
 

Friends

class LLIntOffsetsExtractor
 
class MarkedBlock
 

Constructor & Destructor Documentation

◆ MarkedAllocator() [1/2]

JSC::MarkedAllocator::MarkedAllocator ( Heap heap,
Subspace subspace,
size_t  cellSize 
)

◆ MarkedAllocator() [2/2]

JSC::MarkedAllocator::MarkedAllocator ( Heap ,
Subspace ,
size_t  cellSize 
)

Member Function Documentation

◆ addBlock() [1/2]

void JSC::MarkedAllocator::addBlock ( MarkedBlock::Handle block)

◆ addBlock() [2/2]

void JSC::MarkedAllocator::addBlock ( MarkedBlock::Handle )

◆ allocate() [1/2]

ALWAYS_INLINE void * JSC::MarkedAllocator::allocate ( GCDeferralContext deferralContext = nullptr)

◆ allocate() [2/2]

void* JSC::MarkedAllocator::allocate ( GCDeferralContext = nullptr)

◆ assertNoUnswept() [1/2]

void JSC::MarkedAllocator::assertNoUnswept ( )

◆ assertNoUnswept() [2/2]

void JSC::MarkedAllocator::assertNoUnswept ( )

◆ attributes() [1/2]

const AllocatorAttributes& JSC::MarkedAllocator::attributes ( ) const
inline

◆ attributes() [2/2]

const AllocatorAttributes& JSC::MarkedAllocator::attributes ( ) const
inline

◆ beginMarkingForFullCollection() [1/2]

void JSC::MarkedAllocator::beginMarkingForFullCollection ( )

◆ beginMarkingForFullCollection() [2/2]

void JSC::MarkedAllocator::beginMarkingForFullCollection ( )

◆ bitvectorLock() [1/2]

Lock& JSC::MarkedAllocator::bitvectorLock ( )
inline

◆ bitvectorLock() [2/2]

Lock& JSC::MarkedAllocator::bitvectorLock ( )
inline

◆ blockSizeForBytes() [1/2]

static size_t JSC::MarkedAllocator::blockSizeForBytes ( size_t  )
static

◆ blockSizeForBytes() [2/2]

size_t JSC::MarkedAllocator::blockSizeForBytes ( size_t  bytes)
static

◆ cellKind() [1/2]

HeapCell::Kind JSC::MarkedAllocator::cellKind ( ) const
inline

◆ cellKind() [2/2]

HeapCell::Kind JSC::MarkedAllocator::cellKind ( ) const
inline

◆ cellSize() [1/2]

size_t JSC::MarkedAllocator::cellSize ( ) const
inline

◆ cellSize() [2/2]

size_t JSC::MarkedAllocator::cellSize ( ) const
inline

◆ destruction() [1/2]

DestructionMode JSC::MarkedAllocator::destruction ( ) const
inline

◆ destruction() [2/2]

DestructionMode JSC::MarkedAllocator::destruction ( ) const
inline

◆ dump() [1/2]

void JSC::MarkedAllocator::dump ( PrintStream &  out) const

◆ dump() [2/2]

void JSC::MarkedAllocator::dump ( PrintStream &  ) const

◆ dumpBits() [1/2]

void JSC::MarkedAllocator::dumpBits ( PrintStream &  out = WTF::dataFile())

◆ dumpBits() [2/2]

void JSC::MarkedAllocator::dumpBits ( PrintStream &  = WTF::dataFile())

◆ endMarking() [1/2]

void JSC::MarkedAllocator::endMarking ( )

◆ endMarking() [2/2]

void JSC::MarkedAllocator::endMarking ( )

◆ findBlockToSweep() [1/2]

MarkedBlock::Handle * JSC::MarkedAllocator::findBlockToSweep ( )

◆ findBlockToSweep() [2/2]

MarkedBlock::Handle* JSC::MarkedAllocator::findBlockToSweep ( )

◆ findEmptyBlockToSteal() [1/2]

MarkedBlock::Handle * JSC::MarkedAllocator::findEmptyBlockToSteal ( )

◆ findEmptyBlockToSteal() [2/2]

MarkedBlock::Handle* JSC::MarkedAllocator::findEmptyBlockToSteal ( )

◆ forEachBitVector() [1/2]

template<typename Func >
void JSC::MarkedAllocator::forEachBitVector ( const AbstractLocker &  ,
const Func &  func 
)
inline

◆ forEachBitVector() [2/2]

template<typename Func >
void JSC::MarkedAllocator::forEachBitVector ( const AbstractLocker &  ,
const Func &  func 
)
inline

◆ forEachBitVectorWithName() [1/2]

template<typename Func >
void JSC::MarkedAllocator::forEachBitVectorWithName ( const AbstractLocker &  ,
const Func &  func 
)
inline

◆ forEachBitVectorWithName() [2/2]

template<typename Func >
void JSC::MarkedAllocator::forEachBitVectorWithName ( const AbstractLocker &  ,
const Func &  func 
)
inline

◆ forEachBlock() [1/2]

template<typename Functor >
void JSC::MarkedAllocator::forEachBlock ( const Functor &  )

◆ forEachBlock() [2/2]

template<typename Functor >
void JSC::MarkedAllocator::forEachBlock ( const Functor &  functor)
inline

◆ forEachNotEmptyBlock() [1/2]

template<typename Functor >
void JSC::MarkedAllocator::forEachNotEmptyBlock ( const Functor &  )

◆ forEachNotEmptyBlock() [2/2]

template<typename Functor >
void JSC::MarkedAllocator::forEachNotEmptyBlock ( const Functor &  functor)
inline

◆ heap() [1/2]

Heap* JSC::MarkedAllocator::heap ( )
inline

◆ heap() [2/2]

Heap* JSC::MarkedAllocator::heap ( )
inline

◆ isPagedOut() [1/2]

bool JSC::MarkedAllocator::isPagedOut ( double  deadline)

◆ isPagedOut() [2/2]

bool JSC::MarkedAllocator::isPagedOut ( double  deadline)

◆ lastChanceToFinalize() [1/2]

void JSC::MarkedAllocator::lastChanceToFinalize ( )

◆ lastChanceToFinalize() [2/2]

void JSC::MarkedAllocator::lastChanceToFinalize ( )

◆ markedSpace() [1/2]

MarkedSpace & JSC::MarkedAllocator::markedSpace ( ) const

◆ markedSpace() [2/2]

MarkedSpace& JSC::MarkedAllocator::markedSpace ( ) const

◆ needsDestruction() [1/2]

bool JSC::MarkedAllocator::needsDestruction ( ) const
inline

◆ needsDestruction() [2/2]

bool JSC::MarkedAllocator::needsDestruction ( ) const
inline

◆ nextAllocator() [1/2]

MarkedAllocator* JSC::MarkedAllocator::nextAllocator ( ) const
inline

◆ nextAllocator() [2/2]

MarkedAllocator* JSC::MarkedAllocator::nextAllocator ( ) const
inline

◆ nextAllocatorInSubspace() [1/2]

MarkedAllocator* JSC::MarkedAllocator::nextAllocatorInSubspace ( ) const
inline

◆ nextAllocatorInSubspace() [2/2]

MarkedAllocator* JSC::MarkedAllocator::nextAllocatorInSubspace ( ) const
inline

◆ offsetOfCellSize() [1/2]

static ptrdiff_t JSC::MarkedAllocator::offsetOfCellSize ( )
static

◆ offsetOfCellSize() [2/2]

ptrdiff_t JSC::MarkedAllocator::offsetOfCellSize ( )
inlinestatic

◆ offsetOfFreeList() [1/2]

ptrdiff_t JSC::MarkedAllocator::offsetOfFreeList ( )
inlinestatic

◆ offsetOfFreeList() [2/2]

static ptrdiff_t JSC::MarkedAllocator::offsetOfFreeList ( )
static

◆ prepareForAllocation() [1/2]

void JSC::MarkedAllocator::prepareForAllocation ( )

◆ prepareForAllocation() [2/2]

void JSC::MarkedAllocator::prepareForAllocation ( )

◆ removeBlock() [1/2]

void JSC::MarkedAllocator::removeBlock ( MarkedBlock::Handle )

◆ removeBlock() [2/2]

void JSC::MarkedAllocator::removeBlock ( MarkedBlock::Handle block)

◆ resumeAllocating() [1/2]

void JSC::MarkedAllocator::resumeAllocating ( )

◆ resumeAllocating() [2/2]

void JSC::MarkedAllocator::resumeAllocating ( )

◆ setNextAllocator() [1/2]

void JSC::MarkedAllocator::setNextAllocator ( MarkedAllocator allocator)
inline

◆ setNextAllocator() [2/2]

void JSC::MarkedAllocator::setNextAllocator ( MarkedAllocator allocator)
inline

◆ setNextAllocatorInSubspace() [1/2]

void JSC::MarkedAllocator::setNextAllocatorInSubspace ( MarkedAllocator allocator)
inline

◆ setNextAllocatorInSubspace() [2/2]

void JSC::MarkedAllocator::setNextAllocatorInSubspace ( MarkedAllocator allocator)
inline

◆ shrink() [1/2]

void JSC::MarkedAllocator::shrink ( )

◆ shrink() [2/2]

void JSC::MarkedAllocator::shrink ( )

◆ snapshotUnsweptForEdenCollection() [1/2]

void JSC::MarkedAllocator::snapshotUnsweptForEdenCollection ( )

◆ snapshotUnsweptForEdenCollection() [2/2]

void JSC::MarkedAllocator::snapshotUnsweptForEdenCollection ( )

◆ snapshotUnsweptForFullCollection() [1/2]

void JSC::MarkedAllocator::snapshotUnsweptForFullCollection ( )

◆ snapshotUnsweptForFullCollection() [2/2]

void JSC::MarkedAllocator::snapshotUnsweptForFullCollection ( )

◆ stopAllocating() [1/2]

void JSC::MarkedAllocator::stopAllocating ( )

◆ stopAllocating() [2/2]

void JSC::MarkedAllocator::stopAllocating ( )

◆ subspace() [1/2]

Subspace* JSC::MarkedAllocator::subspace ( ) const
inline

◆ subspace() [2/2]

Subspace* JSC::MarkedAllocator::subspace ( ) const
inline

◆ sweep() [1/2]

void JSC::MarkedAllocator::sweep ( )

◆ sweep() [2/2]

void JSC::MarkedAllocator::sweep ( )

◆ takeLastActiveBlock() [1/2]

MarkedBlock::Handle* JSC::MarkedAllocator::takeLastActiveBlock ( )
inline

◆ takeLastActiveBlock() [2/2]

MarkedBlock::Handle* JSC::MarkedAllocator::takeLastActiveBlock ( )
inline

◆ tryAllocate() [1/2]

ALWAYS_INLINE void * JSC::MarkedAllocator::tryAllocate ( GCDeferralContext deferralContext = nullptr)

◆ tryAllocate() [2/2]

void* JSC::MarkedAllocator::tryAllocate ( GCDeferralContext = nullptr)

Friends And Related Function Documentation

◆ LLIntOffsetsExtractor

◆ MarkedBlock

MarkedBlock
friend

The documentation for this class was generated from the following files: