Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qv4mmdefs_p.h File Reference
#include <private/qv4global_p.h>
#include <private/qv4runtimeapi_p.h>
#include <QtCore/qalgorithms.h>
#include <QtCore/qmath.h>
+ Include dependency graph for qv4mmdefs_p.h:

Go to the source code of this file.

Classes

struct  QV4::Chunk
 
struct  QV4::HeapItem
 
struct  QV4::MarkStack
 

Namespaces

namespace  QV4
 \qmltype Particle \inqmlmodule QtQuick.Particles
 

Macros

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION(c, gcType, type, name)    HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_##gcType(c, type, name)
 
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer(c, type, name)   Pointer<type, 0> name;
 
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark(c, type, name)   type name;
 
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue(c, type, name)   HeapValue<0> name;
 
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray(c, type, name)   type<0> name;
 
#define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name)    HEAP_OBJECT_MEMBER_EXPANSION_##gcType(c, type, name)
 
#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer(c, type, name)    Pointer<type, offsetof(c##OffsetStruct, name) + baseOffset> name;
 
#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark(c, type, name)    type name;
 
#define HEAP_OBJECT_MEMBER_EXPANSION_HeapValue(c, type, name)    HeapValue<offsetof(c##OffsetStruct, name) + baseOffset> name;
 
#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name)    type<offsetof(c##OffsetStruct, name) + baseOffset> name;
 
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION(c, gcType, type, name)    HEAP_OBJECT_MARKOBJECTS_EXPANSION_##gcType(c, type, name)
 
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_Pointer(c, type, name)    if (o->name) o->name.heapObject()->mark(stack);
 
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark(c, type, name)
 
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_HeapValue(c, type, name)    o->name.mark(stack);
 
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_ValueArray(c, type, name)    o->name.mark(stack);
 
#define DECLARE_HEAP_OBJECT_BASE(name, base)
 
#define DECLARE_HEAP_OBJECT(name, base)
 
#define DECLARE_EXPORTED_HEAP_OBJECT(name, base)
 
#define DECLARE_MARKOBJECTS(class)
 

Typedefs

typedef void(* QV4::ClassDestroyStatsCallback) (const char *)
 

Functions

 QV4::Q_STATIC_ASSERT (sizeof(Chunk)==Chunk::ChunkSize)
 
 QV4::Q_STATIC_ASSERT ((1<< Chunk::ChunkShift)==Chunk::ChunkSize)
 
 QV4::Q_STATIC_ASSERT (1<< Chunk::SlotSizeShift==Chunk::SlotSize)
 
 QV4::Q_STATIC_ASSERT (sizeof(HeapItem)==Chunk::SlotSize)
 
 QV4::Q_STATIC_ASSERT (QT_POINTER_SIZE *8==Chunk::Bits)
 
 QV4::Q_STATIC_ASSERT ((1<< Chunk::BitShift)==Chunk::Bits)
 

Macro Definition Documentation

◆ DECLARE_EXPORTED_HEAP_OBJECT

#define DECLARE_EXPORTED_HEAP_OBJECT (   name,
  base 
)
Value:
struct Q_QML_EXPORT name : base, name##Data
GLuint name
#define DECLARE_HEAP_OBJECT_BASE(name, base)

Definition at line 316 of file qv4mmdefs_p.h.

◆ DECLARE_HEAP_OBJECT

#define DECLARE_HEAP_OBJECT (   name,
  base 
)
Value:

Definition at line 313 of file qv4mmdefs_p.h.

◆ DECLARE_HEAP_OBJECT_BASE

#define DECLARE_HEAP_OBJECT_BASE (   name,
  base 
)
Value:
struct name##OffsetStruct { \
}; \
struct name##SizeStruct : base, name##OffsetStruct {}; \
struct name##Data { \
typedef base SuperClass; \
static constexpr size_t baseOffset = sizeof(name##SizeStruct) - sizeof(name##OffsetStruct); \
}; \
Q_STATIC_ASSERT(sizeof(name##SizeStruct) == sizeof(name##Data) + name##Data::baseOffset); \
std::conditional_t< sizeof(Layout1)<=sizeof(Layout2), Layout1, Layout2 > Members
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION(c, gcType, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name)

Definition at line 301 of file qv4mmdefs_p.h.

◆ DECLARE_MARKOBJECTS

#define DECLARE_MARKOBJECTS (   class)
Value:
static void markObjects(Heap::Base *b, MarkStack *stack) { \
class *o = static_cast<class *>(b); \
class##Data::SuperClass::markObjects(o, stack); \
class##Members(class, HEAP_OBJECT_MARKOBJECTS_EXPANSION) \
}
GLboolean GLboolean GLboolean b
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION(c, gcType, type, name)

Definition at line 320 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION (   c,
  gcType,
  type,
  name 
)     HEAP_OBJECT_MARKOBJECTS_EXPANSION_##gcType(c, type, name)

Definition at line 290 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_HeapValue

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_HeapValue (   c,
  type,
  name 
)     o->name.mark(stack);

Definition at line 295 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark (   c,
  type,
  name 
)

Definition at line 294 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_Pointer

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_Pointer (   c,
  type,
  name 
)     if (o->name) o->name.heapObject()->mark(stack);

Definition at line 292 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_ValueArray

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_ValueArray (   c,
  type,
  name 
)     o->name.mark(stack);

Definition at line 297 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION

#define HEAP_OBJECT_MEMBER_EXPANSION (   c,
  gcType,
  type,
  name 
)     HEAP_OBJECT_MEMBER_EXPANSION_##gcType(c, type, name)

Definition at line 278 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_HeapValue

#define HEAP_OBJECT_MEMBER_EXPANSION_HeapValue (   c,
  type,
  name 
)     HeapValue<offsetof(c##OffsetStruct, name) + baseOffset> name;

Definition at line 285 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_NoMark

#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark (   c,
  type,
  name 
)     type name;

Definition at line 283 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_Pointer

#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer (   c,
  type,
  name 
)     Pointer<type, offsetof(c##OffsetStruct, name) + baseOffset> name;

Definition at line 281 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_ValueArray

#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray (   c,
  type,
  name 
)     type<offsetof(c##OffsetStruct, name) + baseOffset> name;

Definition at line 287 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION (   c,
  gcType,
  type,
  name 
)     HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_##gcType(c, type, name)

Definition at line 270 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue (   c,
  type,
  name 
)    HeapValue<0> name;

Definition at line 275 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark (   c,
  type,
  name 
)    type name;

Definition at line 274 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer (   c,
  type,
  name 
)    Pointer<type, 0> name;

Definition at line 273 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray (   c,
  type,
  name 
)    type<0> name;

Definition at line 276 of file qv4mmdefs_p.h.