Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qv4mmdefs_p.h File Reference

(5c5a2c24847c636857153078e4716fcb242f394d)

#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
 

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
static const uint base
Definition qurlidna.cpp:20
#define DECLARE_HEAP_OBJECT_BASE(name, base)

Definition at line 329 of file qv4mmdefs_p.h.

◆ DECLARE_HEAP_OBJECT

#define DECLARE_HEAP_OBJECT ( name,
base )
Value:

Definition at line 326 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 314 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 333 of file qv4mmdefs_p.h.

Referenced by QV4::Heap::DECLARE_EXPORTED_HEAP_OBJECT(), QV4::Heap::DECLARE_EXPORTED_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), QV4::Heap::DECLARE_HEAP_OBJECT(), and QV4::Heap::DECLARE_HEAP_OBJECT().

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION

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

Definition at line 303 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 308 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark ( c,
type,
name )

Definition at line 307 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 305 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 310 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 291 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 298 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_NoMark

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

Definition at line 296 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 294 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 300 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 283 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 288 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 287 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 286 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 289 of file qv4mmdefs_p.h.