aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2018-07-20 15:19:17 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-07-31 07:28:28 +0000
commitfcf9b7efa5b2a0d8f49e59b2a977b8122632aff6 (patch)
tree18f37a5a7775c5876947236fc6913a3a3e227f36 /tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
parent8e45393d10ca649c46a82eb8c125bd38cc5b5615 (diff)
Clean up constant storage for CompiledData::Binding
Store doubles in bindings in the constant table of the compilation unit instead of each binding. This removes one of the two 8 byte members of the value union and also allows for sharing of constants throughout a .qml file. Change-Id: I1d7daafdb7f24e34c14cd160d2dcb2c5aaac1c50 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp')
-rw-r--r--tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
index 1773164e69..4e95288f2b 100644
--- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
+++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
@@ -2205,18 +2205,19 @@ void tst_qqmllanguage::scriptStringWithoutSourceCode()
QV4::CompiledData::Unit *qmlUnit = reinterpret_cast<QV4::CompiledData::Unit *>(malloc(readOnlyQmlUnit->unitSize));
memcpy(qmlUnit, readOnlyQmlUnit, readOnlyQmlUnit->unitSize);
qmlUnit->flags &= ~QV4::CompiledData::Unit::StaticData;
- td->compilationUnit()->setUnitData(qmlUnit);
+ QQmlRefPointer<QV4::CompiledData::CompilationUnit> compilationUnit = td->compilationUnit();
+ compilationUnit->setUnitData(qmlUnit);
const QV4::CompiledData::Object *rootObject = qmlUnit->objectAt(/*root object*/0);
- QCOMPARE(qmlUnit->stringAt(rootObject->inheritedTypeNameIndex), QString("MyTypeObject"));
+ QCOMPARE(compilationUnit->stringAt(rootObject->inheritedTypeNameIndex), QString("MyTypeObject"));
quint32 i;
for (i = 0; i < rootObject->nBindings; ++i) {
const QV4::CompiledData::Binding *binding = rootObject->bindingTable() + i;
- if (qmlUnit->stringAt(binding->propertyNameIndex) != QString("scriptProperty"))
+ if (compilationUnit->stringAt(binding->propertyNameIndex) != QString("scriptProperty"))
continue;
- QCOMPARE(binding->valueAsScriptString(qmlUnit), QString("intProperty"));
+ QCOMPARE(binding->valueAsScriptString(compilationUnit.data()), QString("intProperty"));
const_cast<QV4::CompiledData::Binding*>(binding)->stringIndex = 0; // empty string index
- QVERIFY(binding->valueAsScriptString(qmlUnit).isEmpty());
+ QVERIFY(binding->valueAsScriptString(compilationUnit.data()).isEmpty());
break;
}
QVERIFY(i < rootObject->nBindings);