diff --git a/0256-fix-recursive-backingstore-sync-crash.diff b/0256-fix-recursive-backingstore-sync-crash.diff deleted file mode 100644 index 409ae8f..0000000 --- a/0256-fix-recursive-backingstore-sync-crash.diff +++ /dev/null @@ -1,40 +0,0 @@ -qt-bugs@ issue : N227209 -Trolltech task ID : none yet -bugs.kde.org number : 174065 -applied: yes -author: Szymon Tomasz Stefanek - -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 diff --git a/qt.spec b/qt.spec index db978c5..2a50eb0 100644 --- a/qt.spec +++ b/qt.spec @@ -9,7 +9,7 @@ Epoch: 1 Name: qt4 %endif Version: 4.4.3 -Release: 4%{?dist} +Release: 5%{?dist} # GPLv2 exceptions(see GPL_EXCEPTIONS*.txt) License: GPLv3 with exceptions or GPLv2 with exceptions @@ -46,7 +46,6 @@ Source1: qt-copy-patches-svn_checkout.sh %{?qt_copy:Source2: qt-copy-patches-%{qt_copy}svn.tar.bz2} %{?qt_copy:Provides: qt-copy = %{qt_copy}} %{?qt_copy:Provides: qt4-copy = %{qt_copy}} -Patch100: 0256-fix-recursive-backingstore-sync-crash.diff Source11: qt4.sh Source12: qt4.csh @@ -275,8 +274,6 @@ echo "0242" >> patches/DISABLED echo "0250" >> patches/DISABLED echo "0251" >> patches/DISABLED test -x apply_patches && ./apply_patches -%else -%patch100 -p0 %endif # don't use -b on mkspec files, else they get installed too. @@ -736,8 +733,12 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: %changelog +* Tue Nov 11 2008 Than Ngo 4.4.3-5 +- drop 0256-fix-recursive-backingstore-sync-crash.diff, it's + included in qt-copy-pathes-20081110 + * Mon Nov 10 2008 Rex Dieter 4.4.3-4 -- qt-copy-pathes-20081110 +- qt-copy-patches-20081110 * Mon Nov 10 2008 Than Ngo 4.4.3-3 - apply 0256-fix-recursive-backingstore-sync-crash.diff