forked from pool/libqt5-qtdeclarative
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:
parent
5d18f434c0
commit
90bb2e068e
@ -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
|
||||
|
||||
|
@ -21,22 +21,20 @@
|
||||
%define libname libQtQuick5
|
||||
|
||||
Name: libqt5-qtdeclarative
|
||||
Version: 5.6.1
|
||||
Version: 5.7.0
|
||||
Release: 0
|
||||
Summary: Qt 5 Declarative Library
|
||||
License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0
|
||||
Group: Development/Libraries/X11
|
||||
Url: http://qt.digia.com
|
||||
%define base_name libqt5
|
||||
%define real_version 5.6.1
|
||||
%define so_version 5.6.1
|
||||
%define real_version 5.7.0
|
||||
%define so_version 5.7.0
|
||||
%define tar_version qtdeclarative-opensource-src-%{real_version}
|
||||
Source: %{tar_version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# PATCH-FIX-OPENSUSE overflow.patch -- Statement might be overflowing a buffer
|
||||
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)
|
||||
Patch2: qtdeclarative-opensource-src-5.6.0-qml_no-lifetime-dse.patch
|
||||
BuildRequires: fdupes
|
||||
@ -76,7 +74,6 @@ handling.
|
||||
%prep
|
||||
%setup -q -n qtdeclarative-opensource-src-%{real_version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%package -n %libname
|
||||
@ -221,7 +218,7 @@ popd
|
||||
%{_libqt5_libdir}/cmake/Qt5*
|
||||
%{_libqt5_libdir}/libQt5*.prl
|
||||
%{_libqt5_libdir}/libQt5Q*.so
|
||||
%{_libqt5_libdir}/libQt5Q*.a
|
||||
%{_libqt5_libdir}/libQt5*.a
|
||||
%{_libqt5_libdir}/pkgconfig/Qt5Q*.pc
|
||||
%{_libqt5_archdatadir}/mkspecs/modules/*.pri
|
||||
%{_libqt5_archdatadir}/qml/QtTest
|
||||
|
@ -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
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:12fcfd4bc4bad469f07f8c5404d98646f88f61200b014d4fbcb3a0d9e70942b4
|
||||
size 18803076
|
3
qtdeclarative-opensource-src-5.7.0.tar.xz
Normal file
3
qtdeclarative-opensource-src-5.7.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86de6239f3aee2e5f561c16ad7b6e47d8f341c293d4ed11c85acbc21888cf9f4
|
||||
size 18896864
|
Loading…
Reference in New Issue
Block a user