summaryrefslogtreecommitdiff
path: root/extra/kdebase-workspace/important-performance-bugfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/kdebase-workspace/important-performance-bugfix.patch')
-rw-r--r--extra/kdebase-workspace/important-performance-bugfix.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/extra/kdebase-workspace/important-performance-bugfix.patch b/extra/kdebase-workspace/important-performance-bugfix.patch
new file mode 100644
index 000000000..a34c77e5c
--- /dev/null
+++ b/extra/kdebase-workspace/important-performance-bugfix.patch
@@ -0,0 +1,91 @@
+commit e142a1a142cbc8b87f021223e6abc947f456a7f9
+Author: Thomas Lübking <thomas.luebking@gmail.com>
+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<EffectWindowImpl*>(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<const EffectFrameImpl*>(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<EffectWindowImpl*>(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;
+ }
+ }