Merge branch 'f15' into f14
This commit is contained in:
commit
0771d135b6
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
/kdelibs-4.6.2.tar.bz2
|
||||
/kdelibs-4.6.3.tar.bz2
|
||||
/kdelibs-4.6.4.tar.bz2
|
||||
|
@ -1,114 +0,0 @@
|
||||
commit a8d16682c31ef523ffebba6e19283a19cd5f5627
|
||||
Author: Aaron Seigo <aseigo@kde.org>
|
||||
Date: Fri May 6 15:19:09 2011 +0200
|
||||
|
||||
use a QWeakPointer on the KIconLoader passed in as there are no lifetime guarantees
|
||||
|
||||
usually KGlobal::iconLoader() is used, so this isn't an issue seen very often.
|
||||
however, when a local KIconLoader is created, it is easy to get QIcons with a
|
||||
KIconEngine that has a bad KIconLoader pointer in them. particularly as QIcon
|
||||
is implicitly shared and easily passed around. the StatusNotifier Plasma DataEngine
|
||||
was triggering this, though it would be trivial to run into this problem again
|
||||
anytime a KIconLoader is created locally
|
||||
|
||||
thankfully, QWeakPointer does the job and is very fast and light. (confirmed
|
||||
both with my own testing and confirmation from Thiago).
|
||||
|
||||
massive thanks to Michael Pyne for detecting the cause of the problem via Valgrind.
|
||||
|
||||
BUG:258706
|
||||
|
||||
diff --git a/kdeui/icons/kiconengine.cpp b/kdeui/icons/kiconengine.cpp
|
||||
index 087ba1b..73e092c 100644
|
||||
--- a/kdeui/icons/kiconengine.cpp
|
||||
+++ b/kdeui/icons/kiconengine.cpp
|
||||
@@ -27,16 +27,16 @@
|
||||
|
||||
|
||||
KIconEngine::KIconEngine(const QString& iconName, KIconLoader* iconLoader, const QStringList& overlays)
|
||||
+ : mIconName(iconName),
|
||||
+ mIconLoader(iconLoader),
|
||||
+ mOverlays(overlays)
|
||||
{
|
||||
- mIconName = iconName;
|
||||
- mIconLoader = iconLoader;
|
||||
- mOverlays = overlays;
|
||||
}
|
||||
|
||||
KIconEngine::KIconEngine(const QString& iconName, KIconLoader* iconLoader)
|
||||
+ : mIconName(iconName),
|
||||
+ mIconLoader(iconLoader)
|
||||
{
|
||||
- mIconName = iconName;
|
||||
- mIconLoader = iconLoader;
|
||||
}
|
||||
|
||||
static inline int qIconModeToKIconState( QIcon::Mode mode )
|
||||
@@ -65,8 +65,12 @@ QSize KIconEngine::actualSize( const QSize & size, QIcon::Mode mode, QIcon::Stat
|
||||
return QSize(iconSize, iconSize);
|
||||
}
|
||||
|
||||
-void KIconEngine::paint( QPainter * painter, const QRect & rect, QIcon::Mode mode, QIcon::State state )
|
||||
+void KIconEngine::paint(QPainter * painter, const QRect & rect, QIcon::Mode mode, QIcon::State state)
|
||||
{
|
||||
+ if (!mIconLoader) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
Q_UNUSED(state)
|
||||
|
||||
const int kstate = qIconModeToKIconState(mode);
|
||||
@@ -80,20 +84,27 @@ void KIconEngine::paint( QPainter * painter, const QRect & rect, QIcon::Mode mod
|
||||
}
|
||||
|
||||
const int iconSize = qMin(rect.width(), rect.height());
|
||||
- const QPixmap pix = mIconLoader->loadIcon(mIconName, group, iconSize, kstate, mOverlays);
|
||||
+ const QPixmap pix = mIconLoader.data()->loadIcon(mIconName, group, iconSize, kstate, mOverlays);
|
||||
painter->drawPixmap(rect, pix);
|
||||
}
|
||||
|
||||
-QPixmap KIconEngine::pixmap( const QSize & size, QIcon::Mode mode, QIcon::State state )
|
||||
+QPixmap KIconEngine::pixmap(const QSize & size, QIcon::Mode mode, QIcon::State state)
|
||||
{
|
||||
Q_UNUSED(state)
|
||||
|
||||
+ if (!mIconLoader) {
|
||||
+ QPixmap pm(size);
|
||||
+ pm.fill(Qt::transparent);
|
||||
+ return pm;
|
||||
+ }
|
||||
+
|
||||
const int kstate = qIconModeToKIconState(mode);
|
||||
const int iconSize = qMin(size.width(), size.height());
|
||||
- QPixmap pix = mIconLoader->loadIcon(mIconName, KIconLoader::Desktop, iconSize, kstate, mOverlays);
|
||||
+ QPixmap pix = mIconLoader.data()->loadIcon(mIconName, KIconLoader::Desktop, iconSize, kstate, mOverlays);
|
||||
|
||||
- if(pix.size() == size)
|
||||
+ if (pix.size() == size) {
|
||||
return pix;
|
||||
+ }
|
||||
|
||||
QPixmap pix2(size);
|
||||
pix2.fill(QColor(0,0,0,0));
|
||||
@@ -111,7 +122,7 @@ QString KIconEngine::key() const
|
||||
|
||||
QIconEngineV2 *KIconEngine::clone() const
|
||||
{
|
||||
- return new KIconEngine(mIconName, mIconLoader, mOverlays);
|
||||
+ return new KIconEngine(mIconName, mIconLoader.data(), mOverlays);
|
||||
}
|
||||
|
||||
bool KIconEngine::read(QDataStream &in)
|
||||
diff --git a/kdeui/icons/kiconengine_p.h b/kdeui/icons/kiconengine_p.h
|
||||
index 8095d2a..9fba63c 100644
|
||||
--- a/kdeui/icons/kiconengine_p.h
|
||||
+++ b/kdeui/icons/kiconengine_p.h
|
||||
@@ -75,7 +75,7 @@ class KIconEngine : public QIconEngineV2
|
||||
private:
|
||||
QString mIconName;
|
||||
QStringList mOverlays;
|
||||
- KIconLoader* mIconLoader;
|
||||
+ QWeakPointer<KIconLoader> mIconLoader;
|
||||
};
|
||||
|
||||
inline KIconEngine::~KIconEngine()
|
@ -1,27 +0,0 @@
|
||||
commit 92db24adfa941003db1d885df01157056617f30b
|
||||
Author: Maks Orlovich <maksim@kde.org>
|
||||
Date: Sun May 8 14:39:03 2011 -0400
|
||||
|
||||
Fix the job-on-hold reuse logic, which caused the double-POST problem)
|
||||
|
||||
adawit, could you please at least READ what you're backporting if you are
|
||||
going to be this aggressive? Or better yet, please don't backport anything
|
||||
that's not fixing a critical bug or is trivial, as per:
|
||||
http://techbase.kde.org/Policies/Minor_Point_Release_Policy
|
||||
|
||||
CCMAIL: adawit@kde.org
|
||||
BUG: 272466
|
||||
|
||||
diff --git a/kio/kio/scheduler.cpp b/kio/kio/scheduler.cpp
|
||||
index 55da053..9f5607e 100644
|
||||
--- a/kio/kio/scheduler.cpp
|
||||
+++ b/kio/kio/scheduler.cpp
|
||||
@@ -1151,7 +1151,7 @@ Slave *SchedulerPrivate::heldSlaveForJob(SimpleJob *job)
|
||||
bool canJobReuse = (cmd == CMD_GET || cmd == CMD_MULTI_GET);
|
||||
|
||||
if (KIO::TransferJob *tJob = qobject_cast<KIO::TransferJob *>(job)) {
|
||||
- canJobReuse = cmd == (canJobReuse || cmd == CMD_SPECIAL);
|
||||
+ canJobReuse = (canJobReuse || cmd == CMD_SPECIAL);
|
||||
if (canJobReuse) {
|
||||
KIO::MetaData outgoing = tJob->outgoingMetaData();
|
||||
const QString resume = outgoing.value("resume");
|
17
kdelibs.spec
17
kdelibs.spec
@ -15,8 +15,8 @@
|
||||
%endif
|
||||
|
||||
Summary: KDE Libraries
|
||||
Version: 4.6.3
|
||||
Release: 5%{?dist}
|
||||
Version: 4.6.4
|
||||
Release: 1%{?dist}
|
||||
|
||||
Name: kdelibs
|
||||
Epoch: 6
|
||||
@ -95,11 +95,7 @@ Patch50: kdelibs-4.5.1-knewstuff_gpg2.patch
|
||||
# https://git.reviewboard.kde.org/r/101231/
|
||||
Patch51: kdelibs-4.6.2-uri_mimetypes.patch
|
||||
|
||||
## upstream
|
||||
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/a8d16682c31ef523ffebba6e19283a19cd5f5627/diff
|
||||
Patch100: kdelibs-4.6.3-kde258706.patch
|
||||
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/92db24adfa941003db1d885df01157056617f30b/diff
|
||||
Patch101: kdelibs-4.6.3-kio-double-requests-kde#272466.patch
|
||||
## 4.6 upstream
|
||||
|
||||
## security fix
|
||||
# Not Upstreamed? why not ? -- Rex
|
||||
@ -285,9 +281,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||
%patch50 -p1 -b .knewstuff_gpg2
|
||||
%patch51 -p1 -b .uri_mimetypes
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .kde258706
|
||||
%patch101 -p1 -b .kde272466
|
||||
# 4.6 upstream patches
|
||||
|
||||
# security fix
|
||||
%patch200 -p1 -b .CVE-2009-2702
|
||||
@ -543,6 +537,9 @@ rm -rf %{buildroot}
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jun 06 2011 Than Ngo <than@redhat.com> - 4.6.4-1
|
||||
- 4.6.4
|
||||
|
||||
* Tue May 24 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.6.3-5
|
||||
- fix kio regression causing requests submitted twice (#707146, kde#272466)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user