diff options
author | Lars Knoll <[email protected]> | 2014-04-30 20:02:14 +0200 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2014-07-22 13:49:08 +0200 |
commit | 77505922e8570aa745b9ffff8c04794d1b436c6d (patch) | |
tree | 517d0aeff07d2a69625b531c27555ff4e2795306 /src/qml | |
parent | a79214e69453f14d0af7ce0f47b82345a25b78a1 (diff) |
Convert qqmlbuiltinfunctions to the new storage layout
Change-Id: Idb075e97a5f62bbfe8086155d13a01d1dbc99c08
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 24 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions_p.h | 30 |
3 files changed, 34 insertions, 22 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index 96caeab073..1ba7a8091d 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -186,7 +186,7 @@ void QQmlBinding::update(QQmlPropertyPrivate::WriteFlags flags) QV4::ScopedFunctionObject f(scope, v4function.value()); Q_ASSERT(f); if (f->bindingKeyFlag()) { - QQmlSourceLocation loc = f->as<QV4::QQmlBindingFunction>()->bindingLocation; + QQmlSourceLocation loc = f->as<QV4::QQmlBindingFunction>()->d()->bindingLocation; url = loc.sourceFile; lineNumber = loc.line; columnNumber = loc.column; diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 949fc9ec8b..16594bbd6b 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -88,8 +88,6 @@ struct StaticQtMetaObject : public QObject QV4::QtObject::QtObject(ExecutionEngine *v4, QQmlEngine *qmlEngine) : Object(v4) - , m_platform(0) - , m_application(0) { setVTable(staticVTable()); @@ -1178,8 +1176,8 @@ ReturnedValue QtObject::method_locale(CallContext *ctx) QQmlBindingFunction::QQmlBindingFunction(FunctionObject *originalFunction) : QV4::FunctionObject(originalFunction->scope(), originalFunction->name()) - , originalFunction(originalFunction) { + d()->originalFunction = originalFunction; setVTable(staticVTable()); managedData()->bindingKeyFlag = true; } @@ -1187,20 +1185,20 @@ QQmlBindingFunction::QQmlBindingFunction(FunctionObject *originalFunction) void QQmlBindingFunction::initBindingLocation() { QV4::StackFrame frame = engine()->currentStackFrame(); - bindingLocation.sourceFile = frame.source; - bindingLocation.line = frame.line; + d()->bindingLocation.sourceFile = frame.source; + d()->bindingLocation.line = frame.line; } ReturnedValue QQmlBindingFunction::call(Managed *that, CallData *callData) { QQmlBindingFunction *This = static_cast<QQmlBindingFunction*>(that); - return This->originalFunction->call(callData); + return This->d()->originalFunction->call(callData); } void QQmlBindingFunction::markObjects(Managed *that, ExecutionEngine *e) { QQmlBindingFunction *This = static_cast<QQmlBindingFunction*>(that); - This->originalFunction->mark(e); + This->d()->originalFunction->mark(e); QV4::FunctionObject::markObjects(that, e); } @@ -1272,11 +1270,11 @@ ReturnedValue QtObject::method_get_platform(CallContext *ctx) if (!qt) return ctx->throwTypeError(); - if (!qt->m_platform) + if (!qt->d()->platform) // Only allocate a platform object once - qt->m_platform = new QQmlPlatform(ctx->engine->v8Engine->publicEngine()); + qt->d()->platform = new QQmlPlatform(ctx->engine->v8Engine->publicEngine()); - return QV4::QObjectWrapper::wrap(ctx->engine, qt->m_platform); + return QV4::QObjectWrapper::wrap(ctx->engine, qt->d()->platform); } ReturnedValue QtObject::method_get_application(CallContext *ctx) @@ -1289,11 +1287,11 @@ ReturnedValue QtObject::method_get_application(CallContext *ctx) if (!qt) return ctx->throwTypeError(); - if (!qt->m_application) + if (!qt->d()->application) // Only allocate an application object once - qt->m_application = QQml_guiProvider()->application(ctx->engine->v8Engine->publicEngine()); + qt->d()->application = QQml_guiProvider()->application(ctx->engine->v8Engine->publicEngine()); - return QV4::QObjectWrapper::wrap(ctx->engine, qt->m_application); + return QV4::QObjectWrapper::wrap(ctx->engine, qt->d()->application); } #ifndef QT_NO_IM diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h index f7fe2d2e5b..b74e100349 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h +++ b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h @@ -65,7 +65,17 @@ namespace QV4 { struct QtObject : Object { - V4_OBJECT + struct Data : Object::Data { + QObject *platform; + QObject *application; + }; + struct { + QObject *platform; + QObject *application; + } __data; + + V4_OBJECT_NEW + QtObject(ExecutionEngine *v4, QQmlEngine *qmlEngine); static ReturnedValue method_isQtObject(CallContext *ctx); @@ -104,9 +114,6 @@ struct QtObject : Object #ifndef QT_NO_IM static ReturnedValue method_get_inputMethod(CallContext *ctx); #endif - - QObject *m_platform; - QObject *m_application; }; struct ConsoleObject : Object @@ -147,7 +154,17 @@ struct GlobalExtensions { struct QQmlBindingFunction : public QV4::FunctionObject { - V4_OBJECT + struct Data : FunctionObject::Data { + QV4::FunctionObject *originalFunction; + // Set when the binding is created later + QQmlSourceLocation bindingLocation; + }; + struct { + QV4::FunctionObject *originalFunction; + QQmlSourceLocation bindingLocation; + } __data; + + V4_OBJECT_NEW QQmlBindingFunction(FunctionObject *originalFunction); void initBindingLocation(); // from caller stack trace @@ -159,9 +176,6 @@ struct QQmlBindingFunction : public QV4::FunctionObject static_cast<QQmlBindingFunction *>(that)->~QQmlBindingFunction(); } - QV4::FunctionObject *originalFunction; - // Set when the binding is created later - QQmlSourceLocation bindingLocation; }; } |