diff options
Diffstat (limited to 'x11/qt4-libs/patches/patch-au')
-rw-r--r-- | x11/qt4-libs/patches/patch-au | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/x11/qt4-libs/patches/patch-au b/x11/qt4-libs/patches/patch-au deleted file mode 100644 index 90a302b7161..00000000000 --- a/x11/qt4-libs/patches/patch-au +++ /dev/null @@ -1,42 +0,0 @@ -$NetBSD: patch-au,v 1.2 2009/02/11 17:41:38 wiz Exp $ - -qt-bugs@ issue : N227209 -Trolltech task ID : none yet -bugs.kde.org number : 174065 -applied: yes -author: Szymon Tomasz Stefanek <s.stefanek@gmail.com> - -This patch fixes a crash deep inside the qt painting engine. - -The toplevel shared painter is instantiated by the topmost window -which "owns" the backingstore buffer. The topmost window then recursively -asks the children to paint themselves with the shared painter. -With certain widget hierarchies it turns out that the topmost window -may be asked to paint itself deep inside the recursive painting stack: -a sort of "hierarchy-looping recursion". -The window will do the job and then happily destroy the shared -painter leaving the outer stack frames with a dangling pointer. - -This patch stops the "looping recursion" when it's triggered -with a shared painter already active. The bug doesn't seem to -be present in qt 4.5 snapshots, but in the meantime we need this fix. - - -Index: src/gui/painting/qbackingstore.cpp -=================================================================== ---- src/gui/painting/qbackingstore.cpp (revision 879741) -+++ src/gui/painting/qbackingstore.cpp (working copy) -@@ -987,8 +987,12 @@ - return; - } - -- if (tlw->updatesEnabled()) { -+ // With certain widget hierarchies we may end up being called recursively -+ // on the same toplevel. This is likely to explode once the painter is released -+ // in the code below (since there is no reference counting). Avoid it. -+ bool alreadyPainting = tlwExtra->sharedPainter && tlwExtra->sharedPainter->isActive(); - -+ if (tlw->updatesEnabled() && !alreadyPainting) { - // hw: XXX the toClean region is not correct if !dirtyWidgets.isEmpty() - - // Pre render config |