summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlcompiler.cpp
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2010-01-11 06:36:06 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2010-01-11 06:36:06 (GMT)
commit7ff5100e6e56e1c0fe1aa6f1f0e20d16fdd789f2 (patch)
tree5ea245b63f1f9fc405eda8ab79cc54e501a3c38f /src/declarative/qml/qmlcompiler.cpp
parentd99eac039984eb09e7fa0a91a07073a6c3769a0d (diff)
parentb60580d1de73c5dcb9c08a00c6b6f8948ac76c01 (diff)
downloadQt-7ff5100e6e56e1c0fe1aa6f1f0e20d16fdd789f2.zip
Qt-7ff5100e6e56e1c0fe1aa6f1f0e20d16fdd789f2.tar.gz
Qt-7ff5100e6e56e1c0fe1aa6f1f0e20d16fdd789f2.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src/declarative/qml/qmlcompiler.cpp')
-rw-r--r--src/declarative/qml/qmlcompiler.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp
index f890c5a..4ee59b3 100644
--- a/src/declarative/qml/qmlcompiler.cpp
+++ b/src/declarative/qml/qmlcompiler.cpp
@@ -2355,6 +2355,8 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
((QmlVMEMetaData *)dynamicData.data())->signalCount++;
}
+ QStringList funcScripts;
+
for (int ii = 0; ii < obj->dynamicSlots.count(); ++ii) {
Object::DynamicSlot &s = obj->dynamicSlots[ii];
QByteArray sig(s.name + '(');
@@ -2372,7 +2374,7 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
funcScript.append(QLatin1Char(')'));
funcScript.append(s.body);
funcScript.append(QLatin1Char(')'));
- s.body = funcScript;
+ funcScripts << funcScript;
QMetaMethodBuilder b = builder.addSlot(sig);
b.setReturnType("QVariant");
@@ -2380,20 +2382,21 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
((QmlVMEMetaData *)dynamicData.data())->methodCount++;
QmlVMEMetaData::MethodData methodData =
- { s.parameterNames.count(), 0, s.body.length(), 0 };
+ { s.parameterNames.count(), 0, funcScript.length(), 0 };
dynamicData.append((char *)&methodData, sizeof(methodData));
}
for (int ii = 0; ii < obj->dynamicSlots.count(); ++ii) {
const Object::DynamicSlot &s = obj->dynamicSlots.at(ii);
+ const QString &funcScript = funcScripts.at(ii);
QmlVMEMetaData::MethodData *data =
((QmlVMEMetaData *)dynamicData.data())->methodData() + ii;
data->bodyOffset = dynamicData.size();
- dynamicData.append((const char *)s.body.constData(),
- (s.body.length() * sizeof(QChar)));
+ dynamicData.append((const char *)funcScript.constData(),
+ (funcScript.length() * sizeof(QChar)));
}
obj->metadata = builder.toRelocatableData();