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

Reply via email to