diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2010-01-11 06:36:06 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2010-01-11 06:36:06 (GMT) |
commit | 7ff5100e6e56e1c0fe1aa6f1f0e20d16fdd789f2 (patch) | |
tree | 5ea245b63f1f9fc405eda8ab79cc54e501a3c38f /src/declarative/qml/qmlcompiler.cpp | |
parent | d99eac039984eb09e7fa0a91a07073a6c3769a0d (diff) | |
parent | b60580d1de73c5dcb9c08a00c6b6f8948ac76c01 (diff) | |
download | Qt-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.cpp | 11 |
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(); |