diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index aff8844bb0..cb7804e7fd 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -261,7 +261,7 @@ struct QQmlSequence : Object { template struct QQmlSequence : public QV4::Object { - V4_OBJECT2(QQmlSequence, QV4::Object) + V4_OBJECT2_TEMPLATE_CLASS(QQmlSequence, QQmlSequence, QV4::Object) Q_MANAGED_TYPE(QmlSequence) V4_PROTOTYPE(sequencePrototype) V4_NEEDS_DESTROY diff --git a/src/qml/jsruntime/qv4vtable_p.h b/src/qml/jsruntime/qv4vtable_p.h index 9dda104cd1..a130dc267a 100644 --- a/src/qml/jsruntime/qv4vtable_p.h +++ b/src/qml/jsruntime/qv4vtable_p.h @@ -200,10 +200,7 @@ protected: #define DEFINE_MANAGED_VTABLE(classname) \ const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, 0) -#define V4_OBJECT2(DataClass, superClass) \ - private: \ - DataClass() Q_DECL_EQ_DELETE; \ - Q_DISABLE_COPY(DataClass) \ +#define V4_OBJECT2_COMMON_FUNCTIONS(DataClass, superClass) \ public: \ Q_MANAGED_CHECK \ typedef QV4::Heap::DataClass Data; \ @@ -219,6 +216,19 @@ const QV4::VTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, } \ Q_STATIC_ASSERT(std::is_trivial< QV4::Heap::DataClass >::value); + +#define V4_OBJECT2(DataClass, superClass) \ + private: \ + DataClass() Q_DECL_EQ_DELETE; \ + Q_DISABLE_COPY(DataClass) \ + V4_OBJECT2_COMMON_FUNCTIONS(DataClass, superClass) + +#define V4_OBJECT2_TEMPLATE_CLASS(TemplateClass, DataClass, superClass) \ + private: \ + TemplateClass() Q_DECL_EQ_DELETE; \ + Q_DISABLE_COPY(TemplateClass) \ + V4_OBJECT2_COMMON_FUNCTIONS(DataClass, superClass) + #define V4_PROTOTYPE(p) \ static QV4::Object *defaultPrototype(QV4::ExecutionEngine *e) \ { return e->p(); }