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
qv4mmdefs_p.h File Reference

(0a357623dc70f572d6ada6186fe2592e6ad4c2f1)

#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)
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer(c, type, name)
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark(c, type, name)
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue(c, type, name)
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray(c, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION_Pointer(c, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark(c, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION_HeapValue(c, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION_ValueArray(c, type, name)
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION(c, gcType, type, name)
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_Pointer(c, type, name)
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark(c, type, name)
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_HeapValue(c, type, name)
#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_ValueArray(c, type, name)
#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
EGLImageKHR EGLint * name
static const uint base
Definition qurlidna.cpp:21
#define DECLARE_HEAP_OBJECT_BASE(name, base)

Definition at line 330 of file qv4mmdefs_p.h.

◆ DECLARE_HEAP_OBJECT

#define DECLARE_HEAP_OBJECT ( name,
base )
Value:

Definition at line 327 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); \
#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION(c, gcType, type, name)
#define HEAP_OBJECT_MEMBER_EXPANSION(c, gcType, type, name)

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

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION ( c,
gcType,
type,
name )
Value:
HEAP_OBJECT_MARKOBJECTS_EXPANSION_##gcType(c, type, name)
GLenum type
const GLubyte * c

Definition at line 304 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_HeapValue

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

Definition at line 309 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark

#define HEAP_OBJECT_MARKOBJECTS_EXPANSION_NoMark ( c,
type,
name )

Definition at line 308 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_Pointer

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

Definition at line 306 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MARKOBJECTS_EXPANSION_ValueArray

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

Definition at line 311 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION

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

Definition at line 292 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_HeapValue

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

Definition at line 299 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_NoMark

#define HEAP_OBJECT_MEMBER_EXPANSION_NoMark ( c,
type,
name )
Value:

Definition at line 297 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_Pointer

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

Definition at line 295 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_MEMBER_EXPANSION_ValueArray

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

Definition at line 301 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION

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

Definition at line 284 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_HeapValue

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

Definition at line 289 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_NoMark ( c,
type,
name )
Value:

Definition at line 288 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_Pointer

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

Definition at line 287 of file qv4mmdefs_p.h.

◆ HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray

#define HEAP_OBJECT_OFFSET_MEMBER_EXPANSION_ValueArray ( c,
type,
name )
Value:

Definition at line 290 of file qv4mmdefs_p.h.