Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Chunk Struct Reference

#include <qv4mmdefs_p.h>

Collaboration diagram for QV4::Chunk:

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

HeapItemrealBase ()
HeapItemfirst ()
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]

Detailed Description

Definition at line 56 of file qv4mmdefs_p.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ChunkSize 
ChunkShift 
SlotSize 
SlotSizeShift 
NumSlots 
BitmapSize 
HeaderSize 
DataSize 
AvailableSlots 
Bits 
BitShift 
EntriesInBitmap 

Definition at line 57 of file qv4mmdefs_p.h.

Member Function Documentation

◆ bitForIndex()

Q_ALWAYS_INLINE quintptr QV4::Chunk::bitForIndex ( size_t index)
inlinestatic

Definition at line 87 of file qv4mmdefs_p.h.

◆ bitmapIndex()

Q_ALWAYS_INLINE size_t QV4::Chunk::bitmapIndex ( size_t index)
inlinestatic

Definition at line 84 of file qv4mmdefs_p.h.

◆ clearBit()

void QV4::Chunk::clearBit ( quintptr * bitmap,
size_t index )
inlinestatic

Definition at line 97 of file qv4mmdefs_p.h.

◆ first()

HeapItem * QV4::Chunk::first ( )
inline

Definition at line 220 of file qv4mmdefs_p.h.

References data.

◆ freeAll()

void QV4::Chunk::freeAll ( ExecutionEngine * engine)

Definition at line 329 of file qv4mm.cpp.

◆ hasNonZeroBit()

bool QV4::Chunk::hasNonZeroBit ( quintptr * bitmap)
inlinestatic

Definition at line 126 of file qv4mmdefs_p.h.

◆ lowestNonZeroBit()

uint QV4::Chunk::lowestNonZeroBit ( quintptr * bitmap)
inlinestatic

Definition at line 132 of file qv4mmdefs_p.h.

◆ nFreeSlots()

uint QV4::Chunk::nFreeSlots ( ) const
inline

Definition at line 142 of file qv4mmdefs_p.h.

◆ nUsedSlots()

uint QV4::Chunk::nUsedSlots ( ) const
inline

Definition at line 145 of file qv4mmdefs_p.h.

◆ realBase()

HeapItem * QV4::Chunk::realBase ( )
inline

Definition at line 215 of file qv4mmdefs_p.h.

◆ resetBlackBits()

void QV4::Chunk::resetBlackBits ( )

Definition at line 368 of file qv4mm.cpp.

◆ setBit()

void QV4::Chunk::setBit ( quintptr * bitmap,
size_t index )
inlinestatic

Definition at line 91 of file qv4mmdefs_p.h.

◆ setBits()

void QV4::Chunk::setBits ( quintptr * bitmap,
size_t index,
size_t nBits )
inlinestatic

Definition at line 109 of file qv4mmdefs_p.h.

◆ sortIntoBins()

void QV4::Chunk::sortIntoBins ( HeapItem ** bins,
uint nBins )

Definition at line 373 of file qv4mm.cpp.

◆ sweep() [1/2]

bool QV4::Chunk::sweep ( ClassDestroyStatsCallback classCountPtr)

◆ sweep() [2/2]

bool QV4::Chunk::sweep ( ExecutionEngine * engine)

Definition at line 269 of file qv4mm.cpp.

◆ testBit()

bool QV4::Chunk::testBit ( quintptr * bitmap,
size_t index )
inlinestatic

Definition at line 103 of file qv4mmdefs_p.h.

Member Data Documentation

◆ blackBitmap

quintptr QV4::Chunk::blackBitmap[BitmapSize/sizeof(quintptr)]

Definition at line 76 of file qv4mmdefs_p.h.

◆ data

char QV4::Chunk::data[ChunkSize - HeaderSize]

Definition at line 79 of file qv4mmdefs_p.h.

Referenced by first().

◆ extendsBitmap

quintptr QV4::Chunk::extendsBitmap[BitmapSize/sizeof(quintptr)]

Definition at line 78 of file qv4mmdefs_p.h.

◆ objectBitmap

quintptr QV4::Chunk::objectBitmap[BitmapSize/sizeof(quintptr)]

Definition at line 77 of file qv4mmdefs_p.h.


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