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