![]() |
Qt 6.x
The Qt SDK
|
#include <qv4mmdefs_p.h>
Public Types | |
enum | { ChunkSize = 64*1024 , ChunkShift = 16 , SlotSize = 32 , SlotSizeShift = 5 , NumSlots = ChunkSize/SlotSize , BitmapSize = NumSlots/8 , HeaderSize = 3*BitmapSize , DataSize = ChunkSize - HeaderSize , AvailableSlots = DataSize/SlotSize , Bits = 32 , BitShift = 5 , EntriesInBitmap = BitmapSize/sizeof(quintptr) } |
Public Member Functions | |
HeapItem * | realBase () |
HeapItem * | first () |
uint | nFreeSlots () const |
uint | nUsedSlots () const |
bool | sweep (ClassDestroyStatsCallback classCountPtr) |
void | resetBlackBits () |
bool | sweep (ExecutionEngine *engine) |
void | freeAll (ExecutionEngine *engine) |
void | sortIntoBins (HeapItem **bins, uint nBins) |
Static Public Member Functions | |
static Q_ALWAYS_INLINE size_t | bitmapIndex (size_t index) |
static Q_ALWAYS_INLINE quintptr | bitForIndex (size_t index) |
static void | setBit (quintptr *bitmap, size_t index) |
static void | clearBit (quintptr *bitmap, size_t index) |
static bool | testBit (quintptr *bitmap, size_t index) |
static void | setBits (quintptr *bitmap, size_t index, size_t nBits) |
static bool | hasNonZeroBit (quintptr *bitmap) |
static uint | lowestNonZeroBit (quintptr *bitmap) |
Public Attributes | |
quintptr | blackBitmap [BitmapSize/sizeof(quintptr)] |
quintptr | objectBitmap [BitmapSize/sizeof(quintptr)] |
quintptr | extendsBitmap [BitmapSize/sizeof(quintptr)] |
char | data [ChunkSize - HeaderSize] |
Definition at line 54 of file qv4mmdefs_p.h.
anonymous enum |
Enumerator | |
---|---|
ChunkSize | |
ChunkShift | |
SlotSize | |
SlotSizeShift | |
NumSlots | |
BitmapSize | |
HeaderSize | |
DataSize | |
AvailableSlots | |
Bits | |
BitShift | |
EntriesInBitmap |
Definition at line 55 of file qv4mmdefs_p.h.
|
inlinestatic |
Definition at line 85 of file qv4mmdefs_p.h.
References Bits.
Referenced by clearBit(), QV4::Heap::Base::mark(), setBit(), and testBit().
|
inlinestatic |
Definition at line 82 of file qv4mmdefs_p.h.
References BitShift.
Referenced by clearBit(), QV4::Heap::Base::mark(), setBit(), and testBit().
Definition at line 95 of file qv4mmdefs_p.h.
References bitForIndex(), and bitmapIndex().
Referenced by QV4::MemoryManager::allocObjectWithMemberData().
|
inline |
Definition at line 218 of file qv4mmdefs_p.h.
References data.
Referenced by QV4::BlockAllocator::allocate(), and QV4::freeHugeChunk().
void QV4::Chunk::freeAll | ( | ExecutionEngine * | engine | ) |
Definition at line 329 of file qv4mm.cpp.
References e, engine, i, o, Q_ASSERT, Q_V4_PROFILE_DEALLOC, qCountTrailingZeroBits(), and qPopulationCount().
|
inlinestatic |
Definition at line 124 of file qv4mmdefs_p.h.
References EntriesInBitmap, and i.
Definition at line 130 of file qv4mmdefs_p.h.
References Bits, EntriesInBitmap, i, and qCountTrailingZeroBits().
|
inline |
Definition at line 140 of file qv4mmdefs_p.h.
References AvailableSlots, and nUsedSlots().
|
inline |
Definition at line 143 of file qv4mmdefs_p.h.
References EntriesInBitmap, extendsBitmap, i, objectBitmap, and qPopulationCount().
Referenced by nFreeSlots().
|
inline |
Definition at line 213 of file qv4mmdefs_p.h.
Referenced by QV4::Heap::Base::mark().
Definition at line 89 of file qv4mmdefs_p.h.
References bitForIndex(), and bitmapIndex().
Referenced by QV4::MemoryManager::allocObjectWithMemberData(), and QV4::HeapItem::setAllocatedSlots().
Definition at line 107 of file qv4mmdefs_p.h.
References Bits, BitShift, and qMin().
Referenced by QV4::HeapItem::setAllocatedSlots().
Definition at line 377 of file qv4mm.cpp.
References QV4::HeapItem::availableSlots, base, QV4::HeapItem::freeData, HeaderSize, i, QV4::HeapItem::next, Q_ASSERT, qCountTrailingZeroBits(), qMin(), and qPopulationCount().
bool QV4::Chunk::sweep | ( | ClassDestroyStatsCallback | classCountPtr | ) |
bool QV4::Chunk::sweep | ( | ExecutionEngine * | engine | ) |
Definition at line 267 of file qv4mm.cpp.
References QV4::VTable::destroy, e, engine, i, o, Q_ASSERT, Q_V4_PROFILE_DEALLOC, qCountTrailingZeroBits(), qPopulationCount(), and SDUMP.
|
inlinestatic |
Definition at line 101 of file qv4mmdefs_p.h.
References bitForIndex(), and bitmapIndex().
Referenced by QV4::HeapItem::isBlack(), QV4::HeapItem::isInUse(), QV4::Heap::Base::mark(), and QV4::HeapItem::size().
quintptr QV4::Chunk::blackBitmap[BitmapSize/sizeof(quintptr)] |
Definition at line 74 of file qv4mmdefs_p.h.
char QV4::Chunk::data[ChunkSize - HeaderSize] |
Definition at line 77 of file qv4mmdefs_p.h.
Referenced by first().
quintptr QV4::Chunk::extendsBitmap[BitmapSize/sizeof(quintptr)] |
Definition at line 76 of file qv4mmdefs_p.h.
Referenced by nUsedSlots().
quintptr QV4::Chunk::objectBitmap[BitmapSize/sizeof(quintptr)] |
Definition at line 75 of file qv4mmdefs_p.h.
Referenced by nUsedSlots().