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

(1f13344e500e837e296212eaf3525e57e14cd055)

#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)   const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, 0)
 
#define V4_OBJECT2(DataClass, superClass)
 
#define V4_PROTOTYPE(p)
 
#define DEFINE_OBJECT_VTABLE_BASE(classname)    const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, (std::is_same<classname::SuperClass, Object>::value) ? nullptr : &classname::SuperClass::static_vtbl)
 
#define DEFINE_OBJECT_VTABLE(classname)   DEFINE_OBJECT_VTABLE_BASE(classname)
 
#define DEFINE_OBJECT_TEMPLATE_VTABLE(classname)   template<> DEFINE_OBJECT_VTABLE_BASE(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)    const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, 0)

Definition at line 259 of file qv4vtable_p.h.

◆ DEFINE_MANAGED_VTABLE_INT

#define DEFINE_MANAGED_VTABLE_INT ( classname,
parentVTable )

Definition at line 215 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_TEMPLATE_VTABLE

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

Definition at line 292 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_VTABLE

#define DEFINE_OBJECT_VTABLE ( classname)    DEFINE_OBJECT_VTABLE_BASE(classname)

Definition at line 289 of file qv4vtable_p.h.

◆ DEFINE_OBJECT_VTABLE_BASE

#define DEFINE_OBJECT_VTABLE_BASE ( classname)     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 286 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

Definition at line 262 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 281 of file qv4vtable_p.h.