diff options
author | Martin Jones <martin.jones@nokia.com> | 2010-02-10 07:03:59 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2010-02-10 07:03:59 (GMT) |
commit | ae22dc2472f53c0926b01ef390b7fbeeae0d11ad (patch) | |
tree | 76223f7f62c59bc78d6c09492dc2ad55aa4f7381 | |
parent | 69115b14a2b3c2d029dbb0b4e48a5ce9ba1d6470 (diff) | |
parent | 46595f3a20e9d1d8483172bdd27d17652c4d302e (diff) | |
download | Qt-ae22dc2472f53c0926b01ef390b7fbeeae0d11ad.zip Qt-ae22dc2472f53c0926b01ef390b7fbeeae0d11ad.tar.gz Qt-ae22dc2472f53c0926b01ef390b7fbeeae0d11ad.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-qml
4 files changed, 23 insertions, 1 deletions
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 81988ed..372821e 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -542,6 +542,8 @@ void QmlEngine::setContextForObject(QObject *object, QmlContext *context) data->context = context; data->nextContextObject = context->d_func()->contextObjects; + if (data->nextContextObject) + data->nextContextObject->prevContextObject = &data->nextContextObject; data->prevContextObject = &context->d_func()->contextObjects; context->d_func()->contextObjects = data; } diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp index 1ba9a52..2182ff4 100644 --- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp +++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp @@ -120,6 +120,7 @@ private slots: void undefinedResetsProperty(); void listToVariant(); void multiEngineObject(); + void deletedObject(); void bug1(); @@ -1637,6 +1638,22 @@ void tst_qmlecmascript::multiEngineObject() delete o1; } +// Test that references to QObjects are cleanup when the object is destroyed +void tst_qmlecmascript::deletedObject() +{ + QmlComponent component(&engine, TEST_FILE("deletedObject.qml")); + + QObject *object = component.create(); + + QCOMPARE(object->property("test1").toBool(), true); + QCOMPARE(object->property("test2").toBool(), true); + QCOMPARE(object->property("test3").toBool(), true); + QEXPECT_FAIL("", "QTBUG-8077", Continue); + QCOMPARE(object->property("test4").toBool(), true); + + delete object; +} + QTEST_MAIN(tst_qmlecmascript) #include "tst_qmlecmascript.moc" diff --git a/tests/auto/declarative/qmllanguage/data/invalidID.5.errors.txt b/tests/auto/declarative/qmllanguage/data/invalidID.5.errors.txt index b0a63a0..c167de3 100644 --- a/tests/auto/declarative/qmllanguage/data/invalidID.5.errors.txt +++ b/tests/auto/declarative/qmllanguage/data/invalidID.5.errors.txt @@ -1 +1 @@ -4:9:id conflicts with namespace prefix +2:20:Invalid import qualifier ID diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp index 357fc5f..3029501 100644 --- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp +++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp @@ -327,6 +327,9 @@ void tst_qmllanguage::errors() QFETCH(QString, errorFile); QFETCH(bool, create); + if (file == "invalidID.6.qml") + QSKIP("Test disabled until we strictly disallow ids from beginning with uppercase letters", SkipSingle); + QmlComponent component(&engine, TEST_FILE(file)); if(create) { |