pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/x11/qt4-libs Add patch from qt-copy. Fixes random cras...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/737e4ea82f75
branches:  trunk
changeset: 554240:737e4ea82f75
user:      markd <markd%pkgsrc.org@localhost>
date:      Wed Feb 11 07:46:15 2009 +0000

description:
Add patch from qt-copy. Fixes random crashes seen in kde4's kmail.
Bump PKGREVISION.

diffstat:

 x11/qt4-libs/Makefile         |   4 ++--
 x11/qt4-libs/distinfo         |   3 ++-
 x11/qt4-libs/patches/patch-au |  40 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 44 insertions(+), 3 deletions(-)

diffs (75 lines):

diff -r 08173651720a -r 737e4ea82f75 x11/qt4-libs/Makefile
--- a/x11/qt4-libs/Makefile     Wed Feb 11 05:14:28 2009 +0000
+++ b/x11/qt4-libs/Makefile     Wed Feb 11 07:46:15 2009 +0000
@@ -1,11 +1,11 @@
-# $NetBSD: Makefile,v 1.26 2008/12/17 10:43:06 wiz Exp $
+# $NetBSD: Makefile,v 1.27 2009/02/11 07:46:15 markd Exp $
 
 PKG_DESTDIR_SUPPORT=   user-destdir
 
 .include "../../x11/qt4-libs/Makefile.common"
 
 PKGNAME=       qt4-libs-${QTVERSION}
-PKGREVISION=   2
+PKGREVISION=   3
 COMMENT=       C++ X GUI toolkit
 
 BUILD_TARGET=          sub-src
diff -r 08173651720a -r 737e4ea82f75 x11/qt4-libs/distinfo
--- a/x11/qt4-libs/distinfo     Wed Feb 11 05:14:28 2009 +0000
+++ b/x11/qt4-libs/distinfo     Wed Feb 11 07:46:15 2009 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.25 2008/10/26 14:02:33 adam Exp $
+$NetBSD: distinfo,v 1.26 2009/02/11 07:46:15 markd Exp $
 
 SHA1 (qt-x11-opensource-src-4.4.3.tar.bz2) = 099bcc2dfda73f093f7e80e9004114d41db40b51
 RMD160 (qt-x11-opensource-src-4.4.3.tar.bz2) = 3c73d9c549523efa0e760965c38c7876b4636861
@@ -22,3 +22,4 @@
 SHA1 (patch-ar) = 5bc9a1d384c9a888f1295b87968a09236b48af65
 SHA1 (patch-as) = 244a3017e2780270b61ac50af000cd6fd1bb9cf5
 SHA1 (patch-at) = c8c818dcf45822c8510568bc738b819493f38b11
+SHA1 (patch-au) = 0d816fc2c359cf8fdea039b9307faf8e4651f608
diff -r 08173651720a -r 737e4ea82f75 x11/qt4-libs/patches/patch-au
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/qt4-libs/patches/patch-au     Wed Feb 11 07:46:15 2009 +0000
@@ -0,0 +1,40 @@
+qt-bugs@ issue : N227209
+Trolltech task ID : none yet
+bugs.kde.org number : 174065
+applied: yes
+author: Szymon Tomasz Stefanek <s.stefanek%gmail.com@localhost>
+
+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



Home | Main Index | Thread Index | Old Index