aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-04-30 20:02:14 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-07-22 13:49:08 +0200
commit77505922e8570aa745b9ffff8c04794d1b436c6d (patch)
tree517d0aeff07d2a69625b531c27555ff4e2795306 /src/qml/qml
parenta79214e69453f14d0af7ce0f47b82345a25b78a1 (diff)
Convert qqmlbuiltinfunctions to the new storage layout
Change-Id: Idb075e97a5f62bbfe8086155d13a01d1dbc99c08 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r--src/qml/qml/qqmlbinding.cpp2
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions.cpp24
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions_p.h30
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;
};
}