Accepting request 429989 from KDE:Qt5

The Time Has Come to Shoot You Down... What a Sound

OBS-URL: https://build.opensuse.org/request/show/429989
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtdeclarative?expand=0&rev=33
This commit is contained in:
Dominique Leuenberger 2016-10-01 21:49:11 +00:00 committed by Git OBS Bridge
parent 5d18f434c0
commit 90bb2e068e
5 changed files with 15 additions and 72 deletions

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Sat Sep 24 18:39:01 UTC 2016 - hrvoje.senjan@gmail.com
- Update to 5.7.0
* For more details please see:
https://www.qt.io/qt5-7/
- Axe dead qml_only_release_types_if_they_arent_referenced_anymore.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 21 09:41:43 UTC 2016 - lbeltrame@kde.org Tue Jun 21 09:41:43 UTC 2016 - lbeltrame@kde.org

View File

@ -21,22 +21,20 @@
%define libname libQtQuick5 %define libname libQtQuick5
Name: libqt5-qtdeclarative Name: libqt5-qtdeclarative
Version: 5.6.1 Version: 5.7.0
Release: 0 Release: 0
Summary: Qt 5 Declarative Library Summary: Qt 5 Declarative Library
License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0 License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0
Group: Development/Libraries/X11 Group: Development/Libraries/X11
Url: http://qt.digia.com Url: http://qt.digia.com
%define base_name libqt5 %define base_name libqt5
%define real_version 5.6.1 %define real_version 5.7.0
%define so_version 5.6.1 %define so_version 5.7.0
%define tar_version qtdeclarative-opensource-src-%{real_version} %define tar_version qtdeclarative-opensource-src-%{real_version}
Source: %{tar_version}.tar.xz Source: %{tar_version}.tar.xz
Source1: baselibs.conf Source1: baselibs.conf
# PATCH-FIX-OPENSUSE overflow.patch -- Statement might be overflowing a buffer # PATCH-FIX-OPENSUSE overflow.patch -- Statement might be overflowing a buffer
Patch0: overflow.patch Patch0: overflow.patch
# PATCH-FIX-UPSTREAM qml_only_release_types_if_they_arent_referenced_anymore.patch
Patch1: qml_only_release_types_if_they_arent_referenced_anymore.patch
# PATCH-FIX-OPENSUSE: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch - fix crashes with i586 and Plasma (boo #985768) # PATCH-FIX-OPENSUSE: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch - fix crashes with i586 and Plasma (boo #985768)
Patch2: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch Patch2: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch
BuildRequires: fdupes BuildRequires: fdupes
@ -76,7 +74,6 @@ handling.
%prep %prep
%setup -q -n qtdeclarative-opensource-src-%{real_version} %setup -q -n qtdeclarative-opensource-src-%{real_version}
%patch0 -p1 %patch0 -p1
%patch1 -p1
%patch2 -p1 %patch2 -p1
%package -n %libname %package -n %libname
@ -221,7 +218,7 @@ popd
%{_libqt5_libdir}/cmake/Qt5* %{_libqt5_libdir}/cmake/Qt5*
%{_libqt5_libdir}/libQt5*.prl %{_libqt5_libdir}/libQt5*.prl
%{_libqt5_libdir}/libQt5Q*.so %{_libqt5_libdir}/libQt5Q*.so
%{_libqt5_libdir}/libQt5Q*.a %{_libqt5_libdir}/libQt5*.a
%{_libqt5_libdir}/pkgconfig/Qt5Q*.pc %{_libqt5_libdir}/pkgconfig/Qt5Q*.pc
%{_libqt5_archdatadir}/mkspecs/modules/*.pri %{_libqt5_archdatadir}/mkspecs/modules/*.pri
%{_libqt5_archdatadir}/qml/QtTest %{_libqt5_archdatadir}/qml/QtTest

View File

@ -1,62 +0,0 @@
From 9b1231ca3d21ade574a8a7cf3f0805a8b520bcd5 Mon Sep 17 00:00:00 2001
From: Ulf Hermann <ulf.hermann@qt.io>
Date: Wed, 8 Jun 2016 17:32:32 +0200
Subject: [PATCH] QML: Only release types if they aren't referenced anymore
Just checking for references on m_compiledData is not enough. The
actual component can also be referenced. Thus it won't be deleted
on release(), but cannot be found in the type cache anymore.
Task-number: QTBUG-53761
Change-Id: I8567af8e75a078598e4fed31e4717134e1332278
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 2ac19881f92c94f4e9427bd9ff513210675f259e)
---
src/qml/qml/qqmltypeloader.cpp | 3 ++-
tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp | 15 ++++++++++++---
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index c684c86..01200fd 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -1961,7 +1961,8 @@ void QQmlTypeLoader::trimCache()
QList<TypeCache::Iterator> unneededTypes;
for (TypeCache::Iterator iter = m_typeCache.begin(), end = m_typeCache.end(); iter != end; ++iter) {
QQmlTypeData *typeData = iter.value();
- if (typeData->m_compiledData && typeData->m_compiledData->count() == 1) {
+ if (typeData->m_compiledData && typeData->count() == 1
+ && typeData->m_compiledData->count() == 1) {
// There are no live objects of this type
unneededTypes.append(iter);
}
diff --git a/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp b/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
index 7045c7c..a1eaa05 100644
--- a/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
+++ b/tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
@@ -86,10 +86,19 @@ void tst_QQMLTypeLoader::trimCache()
url.setQuery(QString::number(i));
QQmlTypeData *data = loader.getType(url);
- if (i % 5 == 0) // keep references to some of them so that they aren't trimmed
- data->compiledData()->addref();
+ // Run an event loop to receive the callback that release()es.
+ QTRY_COMPARE(data->count(), 2);
- data->release();
+ // keep references to some of them so that they aren't trimmed. References to either the
+ // QQmlTypeData or its compiledData() should prevent the trimming.
+ if (i % 10 == 0) {
+ // keep ref on data, don't add ref on data->compiledData()
+ } else if (i % 5 == 0) {
+ data->compiledData()->addref();
+ data->release();
+ } else {
+ data->release();
+ }
}
for (int i = 0; i < 256; ++i) {
--
2.1.4

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12fcfd4bc4bad469f07f8c5404d98646f88f61200b014d4fbcb3a0d9e70942b4
size 18803076

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:86de6239f3aee2e5f561c16ad7b6e47d8f341c293d4ed11c85acbc21888cf9f4
size 18896864