Merge lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10 into lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src

Proposed by Timo Jyrinki
Status: Merged
Approved by: Timo Jyrinki
Approved revision: 164
Merged at revision: 164
Proposed branch: lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10
Merge into: lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src
Diff against target: 93 lines (+73/-0)
3 files modified
debian/changelog (+7/-0)
debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch (+65/-0)
debian/patches/series (+1/-0)
To merge this branch: bzr merge lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-opensource-src_530ubuntu10
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Kubuntu Packagers Pending
Review via email: mp+231375@code.launchpad.net

Commit message

* debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch:
  - Cherry-pick a fix to double deletion (LP: #1358169)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
1qtdeclarative-opensource-src (5.3.0-3ubuntu10) utopic; urgency=medium
2
3 * debian/patches/Avoid-double-deletion-when-deleting-an-incubating-co.patch:
4 - Cherry-pick a fix to double deletion (LP: #1358169)
5
6 -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Mon, 18 Aug 2014 11:13:41 +0000
7
1qtdeclarative-opensource-src (5.3.0-3ubuntu9) utopic; urgency=medium8qtdeclarative-opensource-src (5.3.0-3ubuntu9) utopic; urgency=medium
29
3 * debian/patches/Fix-crash-with-running-animators-on-re-shown-windows.patch:10 * debian/patches/Fix-crash-with-running-animators-on-re-shown-windows.patch:
411
=== 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 @@
1From 01c6af3fc940378e8eee41a9fb8273420ef5a7e1 Mon Sep 17 00:00:00 2001
2From: Martin Jones <martin.jones@jollamobile.com>
3Date: Sat, 9 Aug 2014 22:01:08 +1000
4Subject: [PATCH] Avoid double deletion when deleting an incubating component.
5
6The guard in QQmlIncubatorPrivate::clear() was invalidated by clearing
7the guards in QQmlIncubatorPrivate::incubate() when a deletion was
8detected.
9
10If we detect a deletion, leave the guards in place, to be handled in
11QQmlIncubatorPrivate::clear().
12
13Task-number: QTBUG-40685
14Change-Id: I1bf7422fda97745f1f7a3b42285a399244c09a1f
15Reviewed-by: Alan Alpert <aalpert@blackberry.com>
16Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
17Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
18---
19 src/qml/qml/qqmlincubator.cpp | 7 +++----
20 tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp | 4 ----
21 2 files changed, 3 insertions(+), 8 deletions(-)
22
23diff --git a/src/qml/qml/qqmlincubator.cpp b/src/qml/qml/qqmlincubator.cpp
24index 4cdeb19..098a664 100644
25--- a/src/qml/qml/qqmlincubator.cpp
26+++ b/src/qml/qml/qqmlincubator.cpp
27@@ -292,10 +292,7 @@ void QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt &i)
28 QQmlEngine *engine = compiledData->engine;
29 QQmlEnginePrivate *enginePriv = QQmlEnginePrivate::get(engine);
30
31- bool guardOk = vmeGuard.isOK();
32- vmeGuard.clear();
33-
34- if (!guardOk) {
35+ if (!vmeGuard.isOK()) {
36 QQmlError error;
37 error.setUrl(compiledData->url);
38 error.setDescription(QQmlComponent::tr("Object destroyed during incubation"));
39@@ -305,6 +302,8 @@ void QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt &i)
40 goto finishIncubate;
41 }
42
43+ vmeGuard.clear();
44+
45 if (progress == QQmlIncubatorPrivate::Execute) {
46 enginePriv->referenceScarceResources();
47 QObject *tresult = 0;
48diff --git a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp
49index 0b9872f..75b10ed 100644
50--- a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp
51+++ b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp
52@@ -171,10 +171,6 @@ void tst_qqmlincubator::objectDeleted()
53 controller.incubateWhile(&b);
54 }
55
56- // We have to cheat and manually remove it from the creator->allCreatedObjects
57- // otherwise we will do a double delete
58- QQmlIncubatorPrivate *incubatorPriv = QQmlIncubatorPrivate::get(&incubator);
59- incubatorPriv->creator->allCreatedObjects().pop();
60 delete SelfRegisteringType::me();
61
62 {
63--
642.1.0.rc1
65
066
=== 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 @@
11Support-RFC2822Date-date-format-similar-to-V8.patch11Support-RFC2822Date-date-format-similar-to-V8.patch
128454a21b-Flickable-Cancel-interaction-on-interactive-changes.patch128454a21b-Flickable-Cancel-interaction-on-interactive-changes.patch
13Fix-crash-with-running-animators-on-re-shown-windows.patch13Fix-crash-with-running-animators-on-re-shown-windows.patch
14Avoid-double-deletion-when-deleting-an-incubating-co.patch

Subscribers

People subscribed via source and target branches