rev 8228 - in trunk/packages/qt4-x11/debian: . patches

Matthew Rosewarne mukidohime-guest at alioth.debian.org
Wed Dec 12 23:32:36 UTC 2007


Author: mukidohime-guest
Date: 2007-12-12 23:32:36 +0000 (Wed, 12 Dec 2007)
New Revision: 8228

Added:
   trunk/packages/qt4-x11/debian/patches/0204-fix-tulip-aliasing.diff
Modified:
   trunk/packages/qt4-x11/debian/changelog
   trunk/packages/qt4-x11/debian/patches/0203-qtexthtmlparser-link-color.diff
   trunk/packages/qt4-x11/debian/patches/series
Log:
* qt-copy update


Modified: trunk/packages/qt4-x11/debian/changelog
===================================================================
--- trunk/packages/qt4-x11/debian/changelog	2007-12-12 07:33:56 UTC (rev 8227)
+++ trunk/packages/qt4-x11/debian/changelog	2007-12-12 23:32:36 UTC (rev 8228)
@@ -1,3 +1,15 @@
+qt4-x11 (4.3.3-2) unstable; urgency=low
+
+  +++ Changes by Matthew Rosewarne:
+
+  * Add qt-copy patches:
+    * 0204-fix-tulip-aliasing.diff.
+      Should fix KDE 4.0-rc2 startup crash.
+  * Update qt-copy-patches:
+    * 0203-qtexthtmlparser-link-color.diff.
+
+ -- Matthew Rosewarne <mrosewarne at inoutbox.com>  Wed, 12 Dec 2007 14:40:31 -0500
+
 qt4-x11 (4.3.3-1) unstable; urgency=low
 
   * New upstream release.

Modified: trunk/packages/qt4-x11/debian/patches/0203-qtexthtmlparser-link-color.diff
===================================================================
--- trunk/packages/qt4-x11/debian/patches/0203-qtexthtmlparser-link-color.diff	2007-12-12 07:33:56 UTC (rev 8227)
+++ trunk/packages/qt4-x11/debian/patches/0203-qtexthtmlparser-link-color.diff	2007-12-12 23:32:36 UTC (rev 8228)
@@ -1,13 +1,13 @@
-qt-bugs@ issue : none
-Trolltech task ID : none
+qt-bugs@ issue : N190509
+Trolltech task ID : 190904
 applied: yes
 author: Rafael Fernández López <ereslibre at kde.org>
 
 Links are assigned a foreground color according to the system current color scheme.
 
---- a/src/gui/text/qtexthtmlparser.cpp
-+++ b/src/gui/text/qtexthtmlparser.cpp
-@@ -1031,7 +1031,7 @@
+--- a/src/gui/text/qtexthtmlparser.cpp	(revisión: 745183)
++++ b/src/gui/text/qtexthtmlparser.cpp	(copia de trabajo)
+@@ -1031,7 +1031,7 @@ void QTextHtmlParserNode::initializeProp
                      && !attributes.at(i + 1).isEmpty()) {
                      hasHref = true;
                      charFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);

Added: trunk/packages/qt4-x11/debian/patches/0204-fix-tulip-aliasing.diff
===================================================================
--- trunk/packages/qt4-x11/debian/patches/0204-fix-tulip-aliasing.diff	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/0204-fix-tulip-aliasing.diff	2007-12-12 23:32:36 UTC (rev 8228)
@@ -0,0 +1,168 @@
+Trolltech task ID : N190993
+bugs.kde.org number : None
+applied: no
+author: Dirk Mueller <mueller at kde.org>
+
+gcc 4.2 and gcc 4.3 miscompiles QSet and QHash due to strict aliasing
+violations. The patch below removes the brain-damaged reinterpret casts,
+which allows the compiler to understand what is going on and not miscompile
+code in release builds.
+
+
+--- a/src/corelib/tools/qmap.h
++++ b/src/corelib/tools/qmap.h
+@@ -185,6 +185,7 @@ public:
+ 
+     class iterator
+     {
++        friend class const_iterator;
+         QMapData::Node *i;
+ 
+     public:
+@@ -240,9 +241,9 @@ public:
+     public:
+ #endif
+         inline bool operator==(const const_iterator &o) const
+-            { return i == reinterpret_cast<const iterator &>(o).i; }
++            { return i == o.i; }
+         inline bool operator!=(const const_iterator &o) const
+-            { return i != reinterpret_cast<const iterator &>(o).i; }
++            { return i != o.i; }
+ 
+     private:
+         // ### Qt 5: remove
+@@ -252,6 +253,7 @@ public:
+ 
+     class const_iterator
+     {
++        friend class iterator;
+         QMapData::Node *i;
+ 
+     public:
+@@ -270,7 +272,7 @@ public:
+ #else
+         inline const_iterator(const iterator &o)
+ #endif
+-        { i = reinterpret_cast<const const_iterator &>(o).i; }
++        { i = o.i; }
+ 
+         inline const Key &key() const { return concrete(i)->key; }
+         inline const T &value() const { return concrete(i)->value; }
+--- a/src/corelib/tools/qset.h
++++ b/src/corelib/tools/qset.h
+@@ -84,6 +84,7 @@ public:
+     {
+         typedef QHash<T, QHashDummyValue> Hash;
+         typename Hash::iterator i;
++        friend class const_iterator;
+ 
+     public:
+         typedef std::bidirectional_iterator_tag iterator_category;
+@@ -101,9 +102,9 @@ public:
+         inline bool operator==(const iterator &o) const { return i == o.i; }
+         inline bool operator!=(const iterator &o) const { return i != o.i; }
+         inline bool operator==(const const_iterator &o) const
+-            { return i == reinterpret_cast<const iterator &>(o).i; }
++            { return i == o.i; }
+         inline bool operator!=(const const_iterator &o) const
+-            { return i != reinterpret_cast<const iterator &>(o).i; }
++            { return i != o.i; }
+         inline iterator &operator++() { ++i; return *this; }
+         inline iterator operator++(int) { iterator r = *this; ++i; return r; }
+         inline iterator &operator--() { --i; return *this; }
+@@ -118,6 +119,7 @@ public:
+     {
+         typedef QHash<T, QHashDummyValue> Hash;
+         typename Hash::const_iterator i;
++        friend class iterator;
+ 
+     public:
+         typedef std::bidirectional_iterator_tag iterator_category;
+@@ -130,7 +132,7 @@ public:
+         inline const_iterator(typename Hash::const_iterator o) : i(o) {}
+         inline const_iterator(const const_iterator &o) : i(o.i) {}
+         inline const_iterator(const iterator &o)
+-            : i(reinterpret_cast<const const_iterator &>(o).i) {}
++            : i(o.i) {}
+         inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; }
+         inline const T &operator*() const { return i.key(); }
+         inline const T *operator->() const { return &i.key(); }
+--- a/src/corelib/tools/qhash.h
++++ b/src/corelib/tools/qhash.h
+@@ -291,6 +291,7 @@ public:
+ 
+     class iterator
+     {
++        friend class const_iterator;
+         QHashData::Node *i;
+ 
+     public:
+@@ -343,9 +344,9 @@ public:
+     public:
+ #endif
+         inline bool operator==(const const_iterator &o) const
+-            { return i == reinterpret_cast<const iterator &>(o).i; }
++            { return i == o.i; }
+         inline bool operator!=(const const_iterator &o) const
+-            { return i != reinterpret_cast<const iterator &>(o).i; }
++            { return i != o.i; }
+ 
+     private:
+         // ### Qt 5: remove
+@@ -355,6 +356,7 @@ public:
+ 
+     class const_iterator
+     {
++        friend class iterator;
+         QHashData::Node *i;
+ 
+     public:
+@@ -374,7 +376,7 @@ public:
+ #else
+         inline const_iterator(const iterator &o)
+ #endif
+-        { i = reinterpret_cast<const const_iterator &>(o).i; }
++        { i = o.i; }
+ 
+         inline const Key &key() const { return concrete(i)->key; }
+         inline const T &value() const { return concrete(i)->value; }
+--- a/src/corelib/tools/qlist.h
++++ b/src/corelib/tools/qlist.h
+@@ -162,17 +162,17 @@ public:
+         inline bool operator>=(const iterator& other) const { return i >= other.i; }
+ #ifndef QT_STRICT_ITERATORS
+         inline bool operator==(const const_iterator &o) const
+-            { return i == reinterpret_cast<const iterator &>(o).i; }
++            { return i == o.i; }
+         inline bool operator!=(const const_iterator &o) const
+-            { return i != reinterpret_cast<const iterator &>(o).i; }
++            { return i != o.i; }
+         inline bool operator<(const const_iterator& other) const
+-            { return i < reinterpret_cast<const iterator &>(other).i; }
++            { return i < other.i; }
+         inline bool operator<=(const const_iterator& other) const
+-            { return i <= reinterpret_cast<const iterator &>(other).i; }
++            { return i <= other.i; }
+         inline bool operator>(const const_iterator& other) const
+-            { return i > reinterpret_cast<const iterator &>(other).i; }
++            { return i > other.i; }
+         inline bool operator>=(const const_iterator& other) const
+-            { return i >= reinterpret_cast<const iterator &>(other).i; }
++            { return i >= other.i; }
+ #endif
+         inline iterator &operator++() { ++i; return *this; }
+         inline iterator operator++(int) { Node *n = i; ++i; return n; }
+--- a/src/corelib/tools/qlinkedlist.h
++++ b/src/corelib/tools/qlinkedlist.h
+@@ -119,9 +119,9 @@ public:
+         inline bool operator==(const iterator &o) const { return i == o.i; }
+         inline bool operator!=(const iterator &o) const { return i != o.i; }
+         inline bool operator==(const const_iterator &o) const
+-            { return i == reinterpret_cast<const iterator &>(o).i; }
++            { return i == o.i; }
+         inline bool operator!=(const const_iterator &o) const
+-            { return i != reinterpret_cast<const iterator &>(o).i; }
++            { return i != o.i; }
+         inline iterator &operator++() { i = i->n; return *this; }
+         inline iterator operator++(int) { Node *n = i; i = i->n; return n; }
+         inline iterator &operator--() { i = i->p; return *this; }

Modified: trunk/packages/qt4-x11/debian/patches/series
===================================================================
--- trunk/packages/qt4-x11/debian/patches/series	2007-12-12 07:33:56 UTC (rev 8227)
+++ trunk/packages/qt4-x11/debian/patches/series	2007-12-12 23:32:36 UTC (rev 8228)
@@ -13,6 +13,7 @@
 0195-compositing-properties.diff
 0200-fix-qsslsocket-waitfor.diff
 0203-qtexthtmlparser-link-color.diff
+0204-fix-tulip-aliasing.diff
 
 # debian patches
 01_qmake_for_debian.diff




More information about the pkg-kde-commits mailing list