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

(1f13344e500e837e296212eaf3525e57e14cd055)

#include "qv4global_p.h"
#include "qv4value_p.h"
#include "qv4enginebase_p.h"
#include <private/qv4heap_p.h>
#include <private/qv4vtable_p.h>
+ Include dependency graph for qv4managed_p.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  QV4::Managed
 
struct  QV4::InternalClass
 

Namespaces

namespace  QV4
 

Macros

#define Q_MANAGED_CHECK
 
#define V4_MANAGED_SIZE_TEST   void __dataTest() { static_assert (sizeof(*this) == sizeof(Managed), "Classes derived from Managed can't have own data members."); }
 
#define V4_NEEDS_DESTROY   static void virtualDestroy(QV4::Heap::Base *b) { static_cast<Data *>(b)->destroy(); }
 
#define V4_MANAGED_ITSELF(DataClass, superClass)
 
#define V4_MANAGED(DataClass, superClass)
 
#define Q_MANAGED_TYPE(type)
 
#define V4_INTERNALCLASS(c)
 

Functions

template<typename T >
int QV4::qYouForgotTheQ_MANAGED_Macro (T, T)
 
template<typename T1 , typename T2 >
void QV4::qYouForgotTheQ_MANAGED_Macro (T1, T2)
 

Macro Definition Documentation

◆ Q_MANAGED_CHECK

#define Q_MANAGED_CHECK
Value:
template <typename Type> inline void qt_check_for_QMANAGED_macro(const Type *_q_argument) const \
{ int i = qYouForgotTheQ_MANAGED_Macro(this, _q_argument); i = i + 1; }
Definition moc.h:23

Definition at line 27 of file qv4managed_p.h.

◆ Q_MANAGED_TYPE

#define Q_MANAGED_TYPE ( type)
Value:
public: \
enum { MyType = Type_##type };
\inmodule QtDBus
GLenum type

Definition at line 64 of file qv4managed_p.h.

◆ V4_INTERNALCLASS

#define V4_INTERNALCLASS ( c)
Value:
static Heap::InternalClass *defaultInternalClass(QV4::EngineBase *e) \
{ return e->internalClasses(QV4::EngineBase::Class_##c); }
const GLubyte * c

Definition at line 68 of file qv4managed_p.h.

◆ V4_MANAGED

#define V4_MANAGED ( DataClass,
superClass )
Value:
private: \
DataClass() = delete; \
Q_DISABLE_COPY(DataClass) \
V4_MANAGED_ITSELF(DataClass, superClass) \
Q_STATIC_ASSERT(std::is_trivial_v<QV4::Heap::DataClass>);

Definition at line 57 of file qv4managed_p.h.

◆ V4_MANAGED_ITSELF

#define V4_MANAGED_ITSELF ( DataClass,
superClass )
Value:
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; \
}
const GLfloat * m

Definition at line 42 of file qv4managed_p.h.

◆ V4_MANAGED_SIZE_TEST

#define V4_MANAGED_SIZE_TEST   void __dataTest() { static_assert (sizeof(*this) == sizeof(Managed), "Classes derived from Managed can't have own data members."); }

Definition at line 37 of file qv4managed_p.h.

◆ V4_NEEDS_DESTROY

#define V4_NEEDS_DESTROY   static void virtualDestroy(QV4::Heap::Base *b) { static_cast<Data *>(b)->destroy(); }

Definition at line 39 of file qv4managed_p.h.