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

(22df353c14800d2e9b6d57a9a0cb9c6baa337999)

#include "qv4global_p.h"
#include <QtCore/qmetaobject.h>
Include dependency graph for qv4vtable_p.h:

Go to the source code of this file.

Classes

struct  QV4::OwnPropertyKeyIterator
struct  QV4::VTable
struct  QV4::VTableCallWithMetaTypesWrapper< call >
struct  QV4::VTableCallWrapper< call >
struct  QV4::VTableBase

Namespaces

namespace  QV4

Macros

#define DEFINE_MANAGED_VTABLE_INT(classname, parentVTable)
#define DEFINE_MANAGED_VTABLE(classname)
#define V4_OBJECT2(DataClass, superClass)
#define V4_PROTOTYPE(p)
#define DEFINE_OBJECT_VTABLE_BASE(classname)
#define DEFINE_OBJECT_VTABLE(classname)
#define DEFINE_OBJECT_TEMPLATE_VTABLE(classname)

Functions

template<class Class>
constexpr VTable::CallWithMetaTypes QV4::vtableMetaTypesCallEntry ()
template<class Class>
constexpr VTable::Call QV4::vtableJsTypesCallEntry ()

Macro Definition Documentation

◆ DEFINE_MANAGED_VTABLE

#define DEFINE_MANAGED_VTABLE ( classname)
Value:
const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, 0)
#define DEFINE_MANAGED_VTABLE_INT(classname, parentVTable)

Definition at line 260 of file qv4vtable_p.h.

◆ DEFINE_MANAGED_VTABLE_INT

#define DEFINE_MANAGED_VTABLE_INT ( classname,
parentVTable )

Definition at line 216 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_TEMPLATE_VTABLE

#define DEFINE_OBJECT_TEMPLATE_VTABLE ( classname)
Value:
template<> DEFINE_OBJECT_VTABLE_BASE(classname)
#define DEFINE_OBJECT_VTABLE_BASE(classname)

Definition at line 293 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_VTABLE

#define DEFINE_OBJECT_VTABLE ( classname)
Value:

Definition at line 290 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_VTABLE_BASE

#define DEFINE_OBJECT_VTABLE_BASE ( classname)
Value:
const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, (std::is_same<classname::SuperClass, Object>::value) ? nullptr : &classname::SuperClass::static_vtbl)

Definition at line 287 of file qv4vtable_p.h.

◆ V4_OBJECT2

#define V4_OBJECT2 ( DataClass,
superClass )
Value:
private: \
DataClass() = delete; \
Q_DISABLE_COPY(DataClass) \
public: \
Q_MANAGED_CHECK \
typedef QV4::Heap::DataClass Data; \
typedef superClass SuperClass; \
static const QV4::VTable static_vtbl; \
static inline const QV4::VTable *staticVTable() { return &static_vtbl; } \
V4_MANAGED_SIZE_TEST \
QV4::Heap::DataClass *d_unchecked() const { return static_cast<QV4::Heap::DataClass *>(m()); } \
QV4::Heap::DataClass *d() const { \
QV4::Heap::DataClass *dptr = d_unchecked(); \
dptr->_checkIsInitialized(); \
return dptr; \
} \
Q_STATIC_ASSERT(std::is_trivial_v<QV4::Heap::DataClass>);
const GLfloat * m
[1]

Definition at line 263 of file qv4vtable_p.h.

◆ V4_PROTOTYPE

#define V4_PROTOTYPE ( p)
Value:
static QV4::Object *defaultPrototype(QV4::ExecutionEngine *e) \
{ return e->p(); }

Definition at line 282 of file qv4vtable_p.h.