Timo Jyrinki has proposed merging lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10 into lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src.
Commit message: * debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch: - Cherry-pick a fix to double deletion (LP: #1358169) Requested reviews: Kubuntu Packagers (kubuntu-packagers) Related bugs: Bug #1358169 in qtdeclarative-opensource-src (Ubuntu): "Avoid double deletion when deleting an incubating component." https://bugs.launchpad.net/ubuntu/+source/qtdeclarative-opensource-src/+bug/1358169 For more details, see: https://code.launchpad.net/~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10/+merge/231375 -- https://code.launchpad.net/~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10/+merge/231375 Your team Kubuntu Packagers is requested to review the proposed merge of lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10 into lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src.
=== modified file 'debian/changelog' --- debian/changelog 2014-08-13 12:18:53 +0000 +++ debian/changelog 2014-08-19 14:35:36 +0000 @@ -1,3 +1,10 @@ +qtdeclarative-opensource-src (5.3.0-3ubuntu10) utopic; urgency=medium + + * debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch: + - Cherry-pick a fix to double deletion (LP: #1358169) + + -- Timo Jyrinki <[email protected]> Mon, 18 Aug 2014 11:13:41 +0000 + qtdeclarative-opensource-src (5.3.0-3ubuntu9) utopic; urgency=medium * debian/patches/Fix-crash-with-running-animators-on-re-shown-windows.patch: === added file 'debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch' --- debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch 2014-08-19 14:35:36 +0000 @@ -0,0 +1,65 @@ +From 01c6af3fc940378e8eee41a9fb8273420ef5a7e1 Mon Sep 17 00:00:00 2001 +From: Martin Jones <[email protected]> +Date: Sat, 9 Aug 2014 22:01:08 +1000 +Subject: [PATCH] Avoid double deletion when deleting an incubating component. + +The guard in QQmlIncubatorPrivate::clear() was invalidated by clearing +the guards in QQmlIncubatorPrivate::incubate() when a deletion was +detected. + +If we detect a deletion, leave the guards in place, to be handled in +QQmlIncubatorPrivate::clear(). + +Task-number: QTBUG-40685 +Change-Id: I1bf7422fda97745f1f7a3b42285a399244c09a1f +Reviewed-by: Alan Alpert <[email protected]> +Reviewed-by: Robin Burchell <[email protected]> +Reviewed-by: Simon Hausmann <[email protected]> +--- + src/qml/qml/qqmlincubator.cpp | 7 +++---- + tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp | 4 ---- + 2 files changed, 3 insertions(+), 8 deletions(-) + +diff --git a/src/qml/qml/qqmlincubator.cpp b/src/qml/qml/qqmlincubator.cpp +index 4cdeb19..098a664 100644 +--- a/src/qml/qml/qqmlincubator.cpp ++++ b/src/qml/qml/qqmlincubator.cpp +@@ -292,10 +292,7 @@ void QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt &i) + QQmlEngine *engine = compiledData->engine; + QQmlEnginePrivate *enginePriv = QQmlEnginePrivate::get(engine); + +- bool guardOk = vmeGuard.isOK(); +- vmeGuard.clear(); +- +- if (!guardOk) { ++ if (!vmeGuard.isOK()) { + QQmlError error; + error.setUrl(compiledData->url); + error.setDescription(QQmlComponent::tr("Object destroyed during incubation")); +@@ -305,6 +302,8 @@ void QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt &i) + goto finishIncubate; + } + ++ vmeGuard.clear(); ++ + if (progress == QQmlIncubatorPrivate::Execute) { + enginePriv->referenceScarceResources(); + QObject *tresult = 0; +diff --git a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp +index 0b9872f..75b10ed 100644 +--- a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp ++++ b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp +@@ -171,10 +171,6 @@ void tst_qqmlincubator::objectDeleted() + controller.incubateWhile(&b); + } + +- // We have to cheat and manually remove it from the creator->allCreatedObjects +- // otherwise we will do a double delete +- QQmlIncubatorPrivate *incubatorPriv = QQmlIncubatorPrivate::get(&incubator); +- incubatorPriv->creator->allCreatedObjects().pop(); + delete SelfRegisteringType::me(); + + { +-- +2.1.0.rc1 + === modified file 'debian/patches/series' --- debian/patches/series 2014-08-13 12:18:53 +0000 +++ debian/patches/series 2014-08-19 14:35:36 +0000 @@ -11,3 +11,4 @@ Support-RFC2822Date-date-format-similar-to-V8.patch 8454a21b-Flickable-Cancel-interaction-on-interactive-changes.patch Fix-crash-with-running-animators-on-re-shown-windows.patch +Avoid-double-deletion-when-deleting-an-incubating-co.patch
-- kubuntu-devel mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel
