diff options
Diffstat (limited to 'src/qml')
39 files changed, 104 insertions, 88 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h index c56effee77..cc3a70d0c3 100644 --- a/src/qml/jsruntime/qv4argumentsobject_p.h +++ b/src/qml/jsruntime/qv4argumentsobject_p.h @@ -62,7 +62,7 @@ struct ArgumentsGetterFunction: FunctionObject struct { uint index; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) uint index() const { return d()->index; } @@ -83,7 +83,7 @@ struct ArgumentsSetterFunction: FunctionObject struct { uint index; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) uint index() const { return d()->index; } @@ -103,7 +103,7 @@ struct ArgumentsObject: Object { bool fullyCreated; Members mappedArguments; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(ArgumentsObject) CallContext *context() const { return d()->context; } diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index fbc404878e..2d702aed97 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -47,7 +47,7 @@ using namespace QV4; const ArrayVTable SimpleArrayData::static_vtbl = { - DEFINE_MANAGED_VTABLE_INT(SimpleArrayData), + DEFINE_MANAGED_VTABLE_INT(SimpleArrayData, 0), SimpleArrayData::Simple, SimpleArrayData::reallocate, SimpleArrayData::get, @@ -64,7 +64,7 @@ const ArrayVTable SimpleArrayData::static_vtbl = const ArrayVTable SparseArrayData::static_vtbl = { - DEFINE_MANAGED_VTABLE_INT(SparseArrayData), + DEFINE_MANAGED_VTABLE_INT(SparseArrayData, 0), ArrayData::Sparse, SparseArrayData::reallocate, SparseArrayData::get, diff --git a/src/qml/jsruntime/qv4arrayobject_p.h b/src/qml/jsruntime/qv4arrayobject_p.h index 7f983b997d..dccda2896e 100644 --- a/src/qml/jsruntime/qv4arrayobject_p.h +++ b/src/qml/jsruntime/qv4arrayobject_p.h @@ -55,7 +55,7 @@ struct ArrayCtor: FunctionObject Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *m, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); diff --git a/src/qml/jsruntime/qv4booleanobject_p.h b/src/qml/jsruntime/qv4booleanobject_p.h index cbcbaabf51..35cfd5729e 100644 --- a/src/qml/jsruntime/qv4booleanobject_p.h +++ b/src/qml/jsruntime/qv4booleanobject_p.h @@ -55,7 +55,7 @@ struct BooleanCtor: FunctionObject Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index 10a86dd898..7d816f947e 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -133,7 +133,7 @@ struct Q_QML_EXPORT ExecutionContext : public Managed int lineNumber; } __data; - V4_MANAGED + V4_MANAGED(Managed) Q_MANAGED_TYPE(ExecutionContext) ExecutionContext(ExecutionEngine *engine, ContextType t) @@ -208,7 +208,7 @@ struct CallContext : public ExecutionContext Value *locals; Object *activation; } __data; - V4_MANAGED + V4_MANAGED(ExecutionContext) // formals are in reverse order String * const *formals() const; @@ -233,7 +233,7 @@ struct GlobalContext : public ExecutionContext struct { Object *global; } __data; - V4_MANAGED + V4_MANAGED(ExecutionContext) }; @@ -248,7 +248,7 @@ struct CatchContext : public ExecutionContext StringValue exceptionVarName; Value exceptionValue; } __data; - V4_MANAGED + V4_MANAGED(ExecutionContext) }; struct WithContext : public ExecutionContext @@ -260,7 +260,7 @@ struct WithContext : public ExecutionContext struct { Object *withObject; } __data; - V4_MANAGED + V4_MANAGED(ExecutionContext) }; inline CallContext *ExecutionContext::asCallContext() diff --git a/src/qml/jsruntime/qv4dateobject_p.h b/src/qml/jsruntime/qv4dateobject_p.h index d285680268..0526154788 100644 --- a/src/qml/jsruntime/qv4dateobject_p.h +++ b/src/qml/jsruntime/qv4dateobject_p.h @@ -70,7 +70,7 @@ struct DateObject: Object { struct { Value value; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(DateObject) @@ -86,7 +86,7 @@ struct DateCtor: FunctionObject struct Data : FunctionObject::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *); diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h index 39d2e3c5c7..e3fe6895a4 100644 --- a/src/qml/jsruntime/qv4errorobject_p.h +++ b/src/qml/jsruntime/qv4errorobject_p.h @@ -77,7 +77,7 @@ struct ErrorObject: Object { String *stack; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(ErrorObject) SyntaxErrorObject *asSyntaxError(); @@ -118,7 +118,7 @@ struct SyntaxErrorObject: ErrorObject { Data(ExecutionEngine *engine, const ValueRef message); Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); }; - V4_OBJECT + V4_OBJECT(ErrorObject) }; struct TypeErrorObject: ErrorObject { @@ -141,7 +141,7 @@ struct ErrorCtor: FunctionObject Data(ExecutionContext *scope, const QString &name); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -152,7 +152,7 @@ struct EvalErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -162,7 +162,7 @@ struct RangeErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -172,7 +172,7 @@ struct ReferenceErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -182,7 +182,7 @@ struct SyntaxErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -192,7 +192,7 @@ struct TypeErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -202,7 +202,7 @@ struct URIErrorCtor: ErrorCtor struct Data : ErrorCtor::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index eff65f7345..ce8c6e7b79 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -110,7 +110,7 @@ struct Q_QML_EXPORT FunctionObject: Object { Function *function; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(FunctionObject) enum { IsFunctionObject = true @@ -173,7 +173,7 @@ struct FunctionCtor: FunctionObject Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *that, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -184,7 +184,7 @@ struct FunctionPrototype: FunctionObject struct Data : FunctionObject::Data { Data(InternalClass *ic); }; - V4_OBJECT + V4_OBJECT(FunctionObject) void init(ExecutionEngine *engine, Object *ctor); @@ -202,7 +202,7 @@ struct Q_QML_EXPORT BuiltinFunction: FunctionObject { struct { ReturnedValue (*code)(CallContext *); } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) static BuiltinFunction *create(ExecutionContext *scope, String *name, ReturnedValue (*code)(CallContext *)) { @@ -230,7 +230,7 @@ struct IndexedBuiltinFunction: FunctionObject ReturnedValue (*code)(CallContext *, uint index); uint index; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *m, CallData *) { @@ -245,7 +245,7 @@ struct SimpleScriptFunction: FunctionObject { struct Data : FunctionObject::Data { Data(ExecutionContext *scope, Function *function, bool createProto); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -257,7 +257,7 @@ struct ScriptFunction: SimpleScriptFunction { struct Data : SimpleScriptFunction::Data { Data(ExecutionContext *scope, Function *function); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -276,7 +276,7 @@ struct BoundFunction: FunctionObject { Value boundThis; Members boundArgs; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) static BoundFunction *create(ExecutionContext *scope, FunctionObject *target, const ValueRef boundThis, const QV4::Members &boundArgs) { diff --git a/src/qml/jsruntime/qv4globalobject_p.h b/src/qml/jsruntime/qv4globalobject_p.h index d973adc847..b3fcb0c89b 100644 --- a/src/qml/jsruntime/qv4globalobject_p.h +++ b/src/qml/jsruntime/qv4globalobject_p.h @@ -54,7 +54,7 @@ struct Q_QML_EXPORT EvalFunction : FunctionObject Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) ReturnedValue evalCall(CallData *callData, bool directCall); diff --git a/src/qml/jsruntime/qv4jsonobject_p.h b/src/qml/jsruntime/qv4jsonobject_p.h index 86b1fc682d..03d5ad29c8 100644 --- a/src/qml/jsruntime/qv4jsonobject_p.h +++ b/src/qml/jsruntime/qv4jsonobject_p.h @@ -55,7 +55,7 @@ struct JsonObject : Object { Data(InternalClass *ic); }; Q_MANAGED_TYPE(JsonObject) - V4_OBJECT + V4_OBJECT(Object) private: typedef QSet<QV4::Object *> V4ObjectSet; public: diff --git a/src/qml/jsruntime/qv4managed.cpp b/src/qml/jsruntime/qv4managed.cpp index e3e8bb6fd2..6fc402e48f 100644 --- a/src/qml/jsruntime/qv4managed.cpp +++ b/src/qml/jsruntime/qv4managed.cpp @@ -48,6 +48,7 @@ using namespace QV4; const ManagedVTable Managed::static_vtbl = { + 0, Managed::IsExecutionContext, Managed::IsString, Managed::IsObject, diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index fc0a87da9e..4d7af1a5f0 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -62,9 +62,10 @@ inline int qYouForgotTheQ_MANAGED_Macro(T, T) { return 0; } template <typename T1, typename T2> inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} -#define V4_MANAGED \ +#define V4_MANAGED(superClass) \ public: \ Q_MANAGED_CHECK \ + typedef superClass SuperClass; \ static const QV4::ManagedVTable static_vtbl; \ static inline const QV4::ManagedVTable *staticVTable() { return &static_vtbl; } \ template <typename T> \ @@ -73,9 +74,10 @@ inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} const Data *d() const { return &static_cast<const Data &>(Managed::data); } \ Data *d() { return &static_cast<Data &>(Managed::data); } -#define V4_OBJECT \ +#define V4_OBJECT(superClass) \ public: \ Q_MANAGED_CHECK \ + typedef superClass SuperClass; \ static const QV4::ObjectVTable static_vtbl; \ static inline const QV4::ManagedVTable *staticVTable() { return &static_vtbl.managedVTable; } \ template <typename T> \ @@ -102,6 +104,7 @@ struct GCDeletable struct ManagedVTable { + const ManagedVTable * const parent; uint isExecutionContext : 1; uint isString : 1; uint isObject : 1; @@ -135,9 +138,9 @@ struct ObjectVTable void (*advanceIterator)(Managed *m, ObjectIterator *it, String *&name, uint *index, Property *p, PropertyAttributes *attributes); }; - -#define DEFINE_MANAGED_VTABLE_INT(classname) \ +#define DEFINE_MANAGED_VTABLE_INT(classname, parentVTable) \ { \ + parentVTable, \ classname::IsExecutionContext, \ classname::IsString, \ classname::IsObject, \ @@ -146,20 +149,20 @@ struct ObjectVTable classname::IsArrayData, \ 0, \ classname::MyType, \ - #classname, \ + #classname, \ Q_VTABLE_FUNCTION(classname, destroy), \ markObjects, \ isEqualTo \ } #define DEFINE_MANAGED_VTABLE(classname) \ -const QV4::ManagedVTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname) +const QV4::ManagedVTable classname::static_vtbl = DEFINE_MANAGED_VTABLE_INT(classname, 0) #define DEFINE_OBJECT_VTABLE(classname) \ const QV4::ObjectVTable classname::static_vtbl = \ { \ - DEFINE_MANAGED_VTABLE_INT(classname), \ + DEFINE_MANAGED_VTABLE_INT(classname, &classname::SuperClass::static_vtbl == &Object::static_vtbl ? 0 : &classname::SuperClass::static_vtbl.managedVTable), \ call, \ construct, \ get, \ @@ -212,7 +215,7 @@ struct Q_QML_PRIVATE_EXPORT Managed void *operator new(size_t, Managed::Data *m) { return m; } }; Data data; - V4_MANAGED + V4_MANAGED(Managed) enum { IsExecutionContext = false, IsString = false, @@ -272,7 +275,13 @@ public: #if !defined(QT_NO_QOBJECT_CHECK) static_cast<T *>(this)->qt_check_for_QMANAGED_macro(static_cast<T *>(this)); #endif - return internalClass()->vtable == T::staticVTable() ? static_cast<T *>(this) : 0; + const ManagedVTable *vt = internalClass()->vtable; + while (vt) { + if (vt == T::staticVTable()) + return static_cast<T *>(this); + vt = vt->parent; + } + return 0; } template <typename T> const T *as() const { @@ -282,7 +291,13 @@ public: #if !defined(QT_NO_QOBJECT_CHECK) static_cast<T *>(this)->qt_check_for_QMANAGED_macro(static_cast<T *>(const_cast<Managed *>(this))); #endif - return internalClass()->vtable == T::staticVTable() ? static_cast<const T *>(this) : 0; + const ManagedVTable *vt = internalClass()->vtable; + while (vt) { + if (vt == T::staticVTable()) + return static_cast<T *>(this); + vt = vt->parent; + } + return 0; } String *asString() { return internalClass()->vtable->isString ? reinterpret_cast<String *>(this) : 0; } diff --git a/src/qml/jsruntime/qv4mathobject_p.h b/src/qml/jsruntime/qv4mathobject_p.h index bfca09793a..65366aab86 100644 --- a/src/qml/jsruntime/qv4mathobject_p.h +++ b/src/qml/jsruntime/qv4mathobject_p.h @@ -53,7 +53,7 @@ struct MathObject: Object Data(InternalClass *ic); }; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(MathObject) static ReturnedValue method_abs(CallContext *context); diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index f5f2305745..434683994f 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -65,7 +65,7 @@ struct MemberData : Managed Value data[1]; } __data; - V4_MANAGED + V4_MANAGED(Managed) MemberData(QV4::InternalClass *ic) : Managed(ic) {} Value &operator[] (uint idx) { return d()->data[idx]; } diff --git a/src/qml/jsruntime/qv4numberobject_p.h b/src/qml/jsruntime/qv4numberobject_p.h index 1b6371ee83..3e776f0f2f 100644 --- a/src/qml/jsruntime/qv4numberobject_p.h +++ b/src/qml/jsruntime/qv4numberobject_p.h @@ -54,7 +54,7 @@ struct NumberCtor: FunctionObject struct Data : FunctionObject::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *that, CallData *callData); static ReturnedValue call(Managed *, CallData *callData); diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 3497f58a77..774cb5c4b4 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -117,7 +117,7 @@ struct Q_QML_EXPORT Object: Managed { Members memberData; ArrayData *arrayData; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(Object) enum { @@ -336,7 +336,7 @@ struct BooleanObject: Object { struct { Value value; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(BooleanObject) Value value() const { return d()->value; } @@ -359,7 +359,7 @@ struct NumberObject: Object { struct { Value value; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(NumberObject) Value value() const { return d()->value; } @@ -375,7 +375,7 @@ struct ArrayObject: Object { { memberData[LengthPropertyIndex] = Primitive::fromInt32(0); } }; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(ArrayObject) enum { LengthPropertyIndex = 0 diff --git a/src/qml/jsruntime/qv4objectiterator_p.h b/src/qml/jsruntime/qv4objectiterator_p.h index fa2b2b725f..93877b8f2a 100644 --- a/src/qml/jsruntime/qv4objectiterator_p.h +++ b/src/qml/jsruntime/qv4objectiterator_p.h @@ -98,7 +98,7 @@ struct ForEachIteratorObject: Object { ObjectIterator it; Value workArea[2]; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(ForeachIteratorObject) ReturnedValue nextPropertyName() { return d()->it.nextPropertyNameAsString(); } diff --git a/src/qml/jsruntime/qv4objectproto_p.h b/src/qml/jsruntime/qv4objectproto_p.h index e174565915..c34b367223 100644 --- a/src/qml/jsruntime/qv4objectproto_p.h +++ b/src/qml/jsruntime/qv4objectproto_p.h @@ -54,7 +54,7 @@ struct ObjectCtor: FunctionObject struct Data : FunctionObject::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *that, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); diff --git a/src/qml/jsruntime/qv4qobjectwrapper_p.h b/src/qml/jsruntime/qv4qobjectwrapper_p.h index c342caf1be..87c07ce66c 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper_p.h +++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h @@ -85,7 +85,7 @@ struct Q_QML_EXPORT QObjectWrapper : public QV4::Object QPointer<QObject> object; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) enum RevisionMode { IgnoreRevision, CheckRevision }; @@ -141,7 +141,7 @@ struct QObjectMethod : public QV4::FunctionObject QV4::PersistentValue qmlGlobal; } __data; - V4_OBJECT + V4_OBJECT(QV4::FunctionObject) enum { DestroyMethod = -1, ToStringMethod = -2 }; @@ -175,7 +175,7 @@ struct QmlSignalHandler : public QV4::Object int signalIndex; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) int signalIndex() const { return d()->signalIndex; } diff --git a/src/qml/jsruntime/qv4regexp_p.h b/src/qml/jsruntime/qv4regexp_p.h index 4c941979a4..289b5388ec 100644 --- a/src/qml/jsruntime/qv4regexp_p.h +++ b/src/qml/jsruntime/qv4regexp_p.h @@ -90,7 +90,7 @@ struct RegExp : public Managed bool ignoreCase; bool multiLine; } __data; - V4_MANAGED + V4_MANAGED(Managed) Q_MANAGED_TYPE(RegExp) diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index 238ce8a759..4148ca07d4 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -77,7 +77,7 @@ struct RegExpObject: Object { bool global; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(RegExpObject) // needs to be compatible with the flags in qv4jsir_p.h @@ -124,7 +124,7 @@ struct RegExpCtor: FunctionObject int lastMatchEnd; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) Value lastMatch() { return d()->lastMatch; } StringValue lastInput() { return d()->lastInput; } @@ -145,7 +145,7 @@ struct RegExpPrototype: RegExpObject setVTable(staticVTable()); } }; - V4_OBJECT + V4_OBJECT(RegExpObject) void init(ExecutionEngine *engine, Object *ctor); diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index 638cf3c126..810e05c7f4 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -184,7 +184,7 @@ struct CompilationUnitHolder : public Object QV4::CompiledData::CompilationUnit *unit; } __data; - V4_OBJECT + V4_OBJECT(Object) static void destroy(Managed *that) diff --git a/src/qml/jsruntime/qv4script_p.h b/src/qml/jsruntime/qv4script_p.h index ac5df82ef2..ae19397e54 100644 --- a/src/qml/jsruntime/qv4script_p.h +++ b/src/qml/jsruntime/qv4script_p.h @@ -68,7 +68,7 @@ struct Q_QML_EXPORT QmlBindingWrapper : FunctionObject { CallContext *qmlContext; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue call(Managed *that, CallData *); static void markObjects(Managed *m, ExecutionEngine *e); diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index a45d047c28..475c8ad71b 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -202,7 +202,7 @@ struct QQmlSequence : public QV4::Object bool isReference; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) Q_MANAGED_TYPE(QmlSequence) public: diff --git a/src/qml/jsruntime/qv4string.cpp b/src/qml/jsruntime/qv4string.cpp index 1cdd439ab2..123d1648c2 100644 --- a/src/qml/jsruntime/qv4string.cpp +++ b/src/qml/jsruntime/qv4string.cpp @@ -108,7 +108,7 @@ static uint toArrayIndex(const char *ch, const char *end, bool *ok) const ObjectVTable String::static_vtbl = { - DEFINE_MANAGED_VTABLE_INT(String), + DEFINE_MANAGED_VTABLE_INT(String, 0), 0, 0, get, diff --git a/src/qml/jsruntime/qv4string_p.h b/src/qml/jsruntime/qv4string_p.h index 3578c0378e..3bcf1bdae1 100644 --- a/src/qml/jsruntime/qv4string_p.h +++ b/src/qml/jsruntime/qv4string_p.h @@ -95,7 +95,7 @@ struct Q_QML_PRIVATE_EXPORT String : public Managed { uint len; } __data; // ### FIXME: Should this be a V4_OBJECT - V4_OBJECT + V4_OBJECT(QV4::Managed) Q_MANAGED_TYPE(String) enum { IsString = true diff --git a/src/qml/jsruntime/qv4stringobject_p.h b/src/qml/jsruntime/qv4stringobject_p.h index 5cddec0edc..f7a120bc74 100644 --- a/src/qml/jsruntime/qv4stringobject_p.h +++ b/src/qml/jsruntime/qv4stringobject_p.h @@ -61,7 +61,7 @@ struct StringObject: Object { Value value; mutable Property tmpProperty; } __data; - V4_OBJECT + V4_OBJECT(Object) Q_MANAGED_TYPE(StringObject) @@ -79,7 +79,7 @@ struct StringCtor: FunctionObject struct Data : FunctionObject::Data { Data(ExecutionContext *scope); }; - V4_OBJECT + V4_OBJECT(FunctionObject) static ReturnedValue construct(Managed *m, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); diff --git a/src/qml/jsruntime/qv4variantobject_p.h b/src/qml/jsruntime/qv4variantobject_p.h index b1e872b5c5..e94bcf23d3 100644 --- a/src/qml/jsruntime/qv4variantobject_p.h +++ b/src/qml/jsruntime/qv4variantobject_p.h @@ -82,7 +82,7 @@ struct VariantObject : Object int vmePropertyReferenceCount; } __data; - V4_OBJECT + V4_OBJECT(Object) static QVariant toVariant(const ValueRef v); diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index 3cf39bd494..a6a41ae365 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1094,7 +1094,7 @@ struct QmlIncubatorObject : public QV4::Object QV4::Value statusChanged; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) static QV4::ReturnedValue method_get_statusChanged(QV4::CallContext *ctx); static QV4::ReturnedValue method_set_statusChanged(QV4::CallContext *ctx); diff --git a/src/qml/qml/qqmlcontextwrapper_p.h b/src/qml/qml/qqmlcontextwrapper_p.h index a2cb0960d4..73747cadfc 100644 --- a/src/qml/qml/qqmlcontextwrapper_p.h +++ b/src/qml/qml/qqmlcontextwrapper_p.h @@ -94,7 +94,7 @@ struct Q_QML_EXPORT QmlContextWrapper : Object QQmlIdObjectsArray *idObjectsWrapper; } __data; - V4_OBJECT + V4_OBJECT(Object) static ReturnedValue qmlScope(QV8Engine *e, QQmlContextData *ctxt, QObject *scope); static ReturnedValue urlScope(QV8Engine *e, const QUrl &); @@ -130,7 +130,7 @@ struct QQmlIdObjectsArray : public Object QmlContextWrapper *contextWrapper; } __data; - V4_OBJECT + V4_OBJECT(Object) static ReturnedValue getIndexed(Managed *m, uint index, bool *hasProperty); static void markObjects(Managed *that, ExecutionEngine *engine); diff --git a/src/qml/qml/qqmllistwrapper_p.h b/src/qml/qml/qqmllistwrapper_p.h index 670321bcd7..70f686b73c 100644 --- a/src/qml/qml/qqmllistwrapper_p.h +++ b/src/qml/qml/qqmllistwrapper_p.h @@ -84,7 +84,7 @@ struct Q_QML_EXPORT QmlListWrapper : Object int propertyType; } __data; - V4_OBJECT + V4_OBJECT(Object) static ReturnedValue create(QV8Engine *v8, QObject *object, int propId, int propType); static ReturnedValue create(QV8Engine *v8, const QQmlListProperty<QObject> &prop, int propType); diff --git a/src/qml/qml/qqmllocale_p.h b/src/qml/qml/qqmllocale_p.h index d5812ef78a..dcf4a349c4 100644 --- a/src/qml/qml/qqmllocale_p.h +++ b/src/qml/qml/qqmllocale_p.h @@ -143,7 +143,7 @@ struct QQmlLocaleData : public QV4::Object QLocale locale; } __data; - V4_OBJECT + V4_OBJECT(Object) static QLocale *getThisLocale(QV4::CallContext *ctx) { QQmlLocaleData *thisObject = ctx->d()->callData->thisObject.asObject()->as<QQmlLocaleData>(); diff --git a/src/qml/qml/qqmltypewrapper_p.h b/src/qml/qml/qqmltypewrapper_p.h index a54fe99de1..effebf8806 100644 --- a/src/qml/qml/qqmltypewrapper_p.h +++ b/src/qml/qml/qqmltypewrapper_p.h @@ -91,7 +91,7 @@ struct Q_QML_EXPORT QmlTypeWrapper : Object const void *importNamespace; } __data; - V4_OBJECT + V4_OBJECT(Object) private: public: diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 52b45bd1bb..f228d96603 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -72,7 +72,7 @@ struct QmlValueTypeReference : public QmlValueTypeWrapper QPointer<QObject> object; int property; } __data; - V4_OBJECT + V4_OBJECT(QmlValueTypeWrapper) }; DEFINE_OBJECT_VTABLE(QmlValueTypeReference); @@ -88,7 +88,7 @@ struct QmlValueTypeCopy : public QmlValueTypeWrapper { QVariant value; } __data; - V4_OBJECT + V4_OBJECT(QmlValueTypeWrapper) }; DEFINE_OBJECT_VTABLE(QmlValueTypeCopy); diff --git a/src/qml/qml/qqmlvaluetypewrapper_p.h b/src/qml/qml/qqmlvaluetypewrapper_p.h index 22fe628ab5..7647c0c8cc 100644 --- a/src/qml/qml/qqmlvaluetypewrapper_p.h +++ b/src/qml/qml/qqmlvaluetypewrapper_p.h @@ -81,7 +81,7 @@ struct Q_QML_EXPORT QmlValueTypeWrapper : Object mutable QQmlValueType *type; } __data; - V4_OBJECT + V4_OBJECT(Object) public: diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index d864c1f0b0..0ba4eabbca 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -209,7 +209,7 @@ public: NodeImpl *d; } __data; - V4_OBJECT + V4_OBJECT(Object) // C++ API static ReturnedValue create(QV8Engine *, NodeImpl *, const QList<NodeImpl *> &); @@ -247,7 +247,7 @@ public: NodeImpl *d; } __data; - V4_OBJECT + V4_OBJECT(Object) // JS API static void destroy(Managed *that) { @@ -288,7 +288,7 @@ public: o->defineAccessorProperty(QStringLiteral("attributes"), method_get_attributes, 0); } }; - V4_OBJECT + V4_OBJECT(Object) static void initClass(ExecutionEngine *engine); @@ -339,7 +339,7 @@ struct Node : public Object struct { NodeImpl *d; } __data; - V4_OBJECT + V4_OBJECT(Object) // JS API @@ -1629,7 +1629,7 @@ struct QQmlXMLHttpRequestWrapper : public Object QQmlXMLHttpRequest *request; } __data; - V4_OBJECT + V4_OBJECT(Object) static void destroy(Managed *that) { that->as<QQmlXMLHttpRequestWrapper>()->d()->~Data(); @@ -1664,7 +1664,7 @@ struct QQmlXMLHttpRequestCtor : public FunctionObject Object *proto; } __data; - V4_OBJECT + V4_OBJECT(FunctionObject) static void markObjects(Managed *that, ExecutionEngine *e) { QQmlXMLHttpRequestCtor *c = that->as<QQmlXMLHttpRequestCtor>(); if (c->d()->proto) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h index 73c3b8da28..b4e680a4a3 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h +++ b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h @@ -75,7 +75,7 @@ struct QtObject : Object QObject *application; } __data; - V4_OBJECT + V4_OBJECT(Object) static ReturnedValue method_isQtObject(CallContext *ctx); @@ -167,7 +167,7 @@ struct QQmlBindingFunction : public QV4::FunctionObject QQmlSourceLocation bindingLocation; } __data; - V4_OBJECT + V4_OBJECT(QV4::FunctionObject) void initBindingLocation(); // from caller stack trace diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index 7fd880681f..dfef707c97 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -78,7 +78,7 @@ struct DelegateModelGroupFunction: QV4::FunctionObject QV4::ReturnedValue (*code)(QQmlDelegateModelItem *item, uint flag, const QV4::ValueRef arg); } __data; - V4_OBJECT + V4_OBJECT(QV4::FunctionObject) static DelegateModelGroupFunction *create(QV4::ExecutionContext *scope, uint flag, QV4::ReturnedValue (*code)(QQmlDelegateModelItem *item, uint flag, const QV4::ValueRef arg)) { @@ -3226,7 +3226,7 @@ struct QQmlDelegateModelGroupChange : QV4::Object QQmlChangeSet::Change change; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) static QQmlDelegateModelGroupChange *create(QV4::ExecutionEngine *e) { return e->memoryManager->alloc<QQmlDelegateModelGroupChange>(e); @@ -3276,7 +3276,7 @@ struct QQmlDelegateModelGroupChangeArray : public QV4::Object struct { QVector<QQmlChangeSet::Change> changes; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) public: static QQmlDelegateModelGroupChangeArray *create(QV4::ExecutionEngine *engine, const QVector<QQmlChangeSet::Change> &changes) { diff --git a/src/qml/types/qqmldelegatemodel_p_p.h b/src/qml/types/qqmldelegatemodel_p_p.h index e305ac1f3a..f9cbc428c1 100644 --- a/src/qml/types/qqmldelegatemodel_p_p.h +++ b/src/qml/types/qqmldelegatemodel_p_p.h @@ -175,7 +175,7 @@ struct QQmlDelegateModelItemObject : QV4::Object QQmlDelegateModelItem *item; } __data; - V4_OBJECT + V4_OBJECT(QV4::Object) static void destroy(Managed *that); }; |