From b3a841a1f66eff75be29fba090b83ce4322d4721 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 12 Sep 2011 23:14:44 +0000 Subject: Mon Sep 12 23:14:44 UTC 2011 --- kde-unstable/kdebase-workspace/PKGBUILD | 13 +++- .../important-performance-bugfix.patch | 91 ++++++++++++++++++++++ 2 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 kde-unstable/kdebase-workspace/important-performance-bugfix.patch (limited to 'kde-unstable/kdebase-workspace') diff --git a/kde-unstable/kdebase-workspace/PKGBUILD b/kde-unstable/kdebase-workspace/PKGBUILD index 650265a83..ccf43537a 100644 --- a/kde-unstable/kdebase-workspace/PKGBUILD +++ b/kde-unstable/kdebase-workspace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 137512 2011-09-08 10:05:49Z andrea $ +# $Id: PKGBUILD 137807 2011-09-11 11:17:41Z andrea $ # Maintainer: Andrea Scarpino # Contributor: Pierre Schmitz pkgname=kdebase-workspace _pkgname=kde-workspace pkgver=4.7.1 -pkgrel=5 +pkgrel=7 pkgdesc="KDE Base Workspace" arch=('i686' 'x86_64') url='http://www.kde.org' @@ -30,7 +30,8 @@ backup=('usr/share/config/kdm/kdmrc' options=('emptydirs') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2" 'kdm-zsh-profile.patch' 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' - 'fixpath.patch' 'terminate-server.patch') + 'fixpath.patch' 'terminate-server.patch' + 'important-performance-bugfix.patch') sha1sums=('c7867d2f788086078abbcff53a035a6131232539' '8c2bdefb23a03b753b78d16944d03fa3939d2d99' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' @@ -38,7 +39,8 @@ sha1sums=('c7867d2f788086078abbcff53a035a6131232539' '603cc79c4d2b4eae62bb5f244aeecb3a778b5516' '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8' 'd7b5883f7e65c6839b1f65f94d58026673dd0226' - 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee') + 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' + '4fa046db21e3203771fd29bc0e1c32918862b894') build() { cd "${srcdir}"/${_pkgname}-${pkgver} @@ -46,6 +48,9 @@ build() { patch -p0 -i "${srcdir}"/fixpath.patch patch -p0 -i "${srcdir}"/terminate-server.patch + # Already fixed upstream + patch -p1 -i "${srcdir}"/important-performance-bugfix.patch + cd "${srcdir}" mkdir build cd build diff --git a/kde-unstable/kdebase-workspace/important-performance-bugfix.patch b/kde-unstable/kdebase-workspace/important-performance-bugfix.patch new file mode 100644 index 000000000..a34c77e5c --- /dev/null +++ b/kde-unstable/kdebase-workspace/important-performance-bugfix.patch @@ -0,0 +1,91 @@ +commit e142a1a142cbc8b87f021223e6abc947f456a7f9 +Author: Thomas Lübking +Date: Thu Sep 8 22:20:35 2011 +0200 + + replace non-const QVector::operator[] accesses with const ::at() to avoid maaany deep vecor copies + +diff --git a/kwin/effects.cpp b/kwin/effects.cpp +index e0c76cb..f5863fc0 100644 +--- a/kwin/effects.cpp ++++ b/kwin/effects.cpp +@@ -200,7 +200,7 @@ void EffectsHandlerImpl::reconfigure() + void EffectsHandlerImpl::prePaintScreen(ScreenPrePaintData& data, int time) + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->prePaintScreen(data, time); ++ loaded_effects.at(current_paint_screen++).second->prePaintScreen(data, time); + --current_paint_screen; + } + // no special final code +@@ -209,7 +209,7 @@ void EffectsHandlerImpl::prePaintScreen(ScreenPrePaintData& data, int time) + void EffectsHandlerImpl::paintScreen(int mask, QRegion region, ScreenPaintData& data) + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->paintScreen(mask, region, data); ++ loaded_effects.at(current_paint_screen++).second->paintScreen(mask, region, data); + --current_paint_screen; + } else + scene->finalPaintScreen(mask, region, data); +@@ -218,7 +218,7 @@ void EffectsHandlerImpl::paintScreen(int mask, QRegion region, ScreenPaintData& + void EffectsHandlerImpl::postPaintScreen() + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->postPaintScreen(); ++ loaded_effects.at(current_paint_screen++).second->postPaintScreen(); + --current_paint_screen; + } + // no special final code +@@ -227,7 +227,7 @@ void EffectsHandlerImpl::postPaintScreen() + void EffectsHandlerImpl::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->prePaintWindow(w, data, time); ++ loaded_effects.at(current_paint_window++).second->prePaintWindow(w, data, time); + --current_paint_window; + } + // no special final code +@@ -236,7 +236,7 @@ void EffectsHandlerImpl::prePaintWindow(EffectWindow* w, WindowPrePaintData& dat + void EffectsHandlerImpl::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->paintWindow(w, mask, region, data); ++ loaded_effects.at(current_paint_window++).second->paintWindow(w, mask, region, data); + --current_paint_window; + } else + scene->finalPaintWindow(static_cast(w), mask, region, data); +@@ -245,7 +245,7 @@ void EffectsHandlerImpl::paintWindow(EffectWindow* w, int mask, QRegion region, + void EffectsHandlerImpl::paintEffectFrame(EffectFrame* frame, QRegion region, double opacity, double frameOpacity) + { + if (current_paint_effectframe < loaded_effects.size()) { +- loaded_effects[current_paint_effectframe++].second->paintEffectFrame(frame, region, opacity, frameOpacity); ++ loaded_effects.at(current_paint_effectframe++).second->paintEffectFrame(frame, region, opacity, frameOpacity); + --current_paint_effectframe; + } else { + const EffectFrameImpl* frameImpl = static_cast(frame); +@@ -256,7 +256,7 @@ void EffectsHandlerImpl::paintEffectFrame(EffectFrame* frame, QRegion region, do + void EffectsHandlerImpl::postPaintWindow(EffectWindow* w) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->postPaintWindow(w); ++ loaded_effects.at(current_paint_window++).second->postPaintWindow(w); + --current_paint_window; + } + // no special final code +@@ -273,7 +273,7 @@ bool EffectsHandlerImpl::provides(Effect::Feature ef) + void EffectsHandlerImpl::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) + { + if (current_draw_window < loaded_effects.size()) { +- loaded_effects[current_draw_window++].second->drawWindow(w, mask, region, data); ++ loaded_effects.at(current_draw_window++).second->drawWindow(w, mask, region, data); + --current_draw_window; + } else + scene->finalDrawWindow(static_cast(w), mask, region, data); +@@ -282,7 +282,7 @@ void EffectsHandlerImpl::drawWindow(EffectWindow* w, int mask, QRegion region, W + void EffectsHandlerImpl::buildQuads(EffectWindow* w, WindowQuadList& quadList) + { + if (current_build_quads < loaded_effects.size()) { +- loaded_effects[current_build_quads++].second->buildQuads(w, quadList); ++ loaded_effects.at(current_build_quads++).second->buildQuads(w, quadList); + --current_build_quads; + } + } -- cgit v1.2.3-54-g00ecf