summaryrefslogtreecommitdiffstats
path: root/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch')
m---------gentoo0
-rw-r--r--gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch1052
2 files changed, 0 insertions, 1052 deletions
diff --git a/gentoo b/gentoo
new file mode 160000
+Subproject 644110a847c5911c2eb04eb53c93031740561ef
diff --git a/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch b/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch
deleted file mode 100644
index c47203150..000000000
--- a/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-25_03_21_44-Fix-a-number-of-threading-problems-and-crashes-This-partially-resolves-Bug-1467-part-of-the-original-commit-b8e4f24.patch
+++ /dev/null
@@ -1,1052 +0,0 @@
-diff --git a/src/kernel/qapplication.cpp b/src/kernel/qapplication.cpp
-index 0ec4904..960db1e 100644
---- a/src/kernel/qapplication.cpp
-+++ b/src/kernel/qapplication.cpp
-@@ -546,8 +546,9 @@ static QPostEventList *globalPostedEvents = 0; // list of posted events
-
- uint qGlobalPostedEventsCount()
- {
-- if (!globalPostedEvents)
-+ if (!globalPostedEvents) {
- return 0;
-+ }
- return globalPostedEvents->count();
- }
-
-@@ -2315,8 +2316,9 @@ void QApplication::aboutQt()
- bool QApplication::notify( QObject *receiver, QEvent *e )
- {
- // no events are delivered after ~QApplication() has started
-- if ( is_app_closing )
-+ if ( is_app_closing ) {
- return FALSE;
-+ }
-
- if ( receiver == 0 ) { // serious error
- #if defined(QT_CHECK_NULL)
-@@ -2358,8 +2360,9 @@ bool QApplication::notify( QObject *receiver, QEvent *e )
- }
-
- bool res = FALSE;
-- if ( !receiver->isWidgetType() )
-+ if ( !receiver->isWidgetType() ) {
- res = internalNotify( receiver, e );
-+ }
- else switch ( e->type() ) {
- #ifndef QT_NO_ACCEL
- case QEvent::Accel:
-@@ -2367,13 +2370,15 @@ bool QApplication::notify( QObject *receiver, QEvent *e )
- QKeyEvent* key = (QKeyEvent*) e;
- res = internalNotify( receiver, e );
-
-- if ( !res && !key->isAccepted() )
-+ if ( !res && !key->isAccepted() ) {
- res = qt_dispatchAccelEvent( (QWidget*)receiver, key );
-+ }
-
- // next lines are for compatibility with Qt <= 3.0.x: old
- // QAccel was listening on toplevel widgets
-- if ( !res && !key->isAccepted() && !((QWidget*)receiver)->isTopLevel() )
-+ if ( !res && !key->isAccepted() && !((QWidget*)receiver)->isTopLevel() ) {
- res = internalNotify( ((QWidget*)receiver)->topLevelWidget(), e );
-+ }
- }
- break;
- #endif //QT_NO_ACCEL
-@@ -3116,8 +3121,9 @@ void QApplication::postEvent( QObject *receiver, QEvent *event )
- qapp_cleanup_events.set( &globalPostedEvents );
- }
-
-- if ( !receiver->postedEvents )
-+ if ( !receiver->postedEvents ) {
- receiver->postedEvents = new QPostEventList;
-+ }
- QPostEventList * l = receiver->postedEvents;
-
- // if this is one of the compressible events, do compression
-@@ -3232,22 +3238,25 @@ void QApplication::sendPostedEvents( QObject *receiver, int event_type )
- {
- // Make sure the object hierarchy is stable before processing events
- // to avoid endless loops
-- if ( receiver == 0 && event_type == 0 )
-+ if ( receiver == 0 && event_type == 0 ) {
- sendPostedEvents( 0, QEvent::ChildInserted );
--
-- if ( !globalPostedEvents || ( receiver && !receiver->postedEvents ) )
-- return;
-+ }
-
- #ifdef QT_THREAD_SUPPORT
- QMutexLocker locker( postevent_mutex );
- #endif
-
-+ if ( !globalPostedEvents || ( receiver && !receiver->postedEvents ) ) {
-+ return;
-+ }
-+
- bool sent = TRUE;
- while ( sent ) {
- sent = FALSE;
-
-- if ( !globalPostedEvents || ( receiver && !receiver->postedEvents ) )
-+ if ( !globalPostedEvents || ( receiver && !receiver->postedEvents ) ) {
- return;
-+ }
-
- // if we have a receiver, use the local list. Otherwise, use the
- // global list
-@@ -3296,8 +3305,9 @@ void QApplication::sendPostedEvents( QObject *receiver, int event_type )
- if ( e->type() == QEvent::Paint && r->isWidgetType() ) {
- QWidget * w = (QWidget*)r;
- QPaintEvent * p = (QPaintEvent*)e;
-- if ( w->isVisible() )
-+ if ( w->isVisible() ) {
- w->repaint( p->reg, p->erase );
-+ }
- } else {
- sent = TRUE;
- QApplication::sendEvent( r, e );
-@@ -3318,10 +3328,12 @@ void QApplication::sendPostedEvents( QObject *receiver, int event_type )
- if ( l == globalPostedEvents ) {
- globalPostedEvents->first();
- while( (pe=globalPostedEvents->current()) != 0 ) {
-- if ( pe->event )
-+ if ( pe->event ) {
- globalPostedEvents->next();
-- else
-+ }
-+ else {
- globalPostedEvents->remove();
-+ }
- }
- }
- }
-diff --git a/src/kernel/qobject.cpp b/src/kernel/qobject.cpp
-index 7790676..375e83b 100644
---- a/src/kernel/qobject.cpp
-+++ b/src/kernel/qobject.cpp
-@@ -471,11 +471,13 @@ QObject::~QObject()
- blockSig = 0; // unblock signals to keep QGuardedPtr happy
- emit destroyed( this );
- emit destroyed();
-- if ( objname )
-+ if ( objname ) {
- delete [] (char*)objname;
-+ }
- objname = 0;
-- if ( pendTimer ) // might be pending timers
-+ if ( pendTimer ) { // might be pending timers
- qKillTimer( this );
-+ }
- QApplication::removePostedEvents( this );
- if ( isTree ) {
- remove_tree( this ); // remove from global root list
-@@ -755,12 +757,17 @@ QObject* QObject::child( const char *objName, const char *inheritsClass,
- bool QObject::event( QEvent *e )
- {
- #if defined(QT_CHECK_NULL)
-- if ( e == 0 )
-+ if ( e == 0 ) {
- qWarning( "QObject::event: Null events are not permitted" );
-+ }
- #endif
-+ if ( wasDeleted ) {
-+ return TRUE;
-+ }
- if ( eventFilters ) { // try filters
-- if ( activate_filters(e) ) // stopped by a filter
-+ if ( activate_filters(e) ) { // stopped by a filter
- return TRUE;
-+ }
- }
-
- switch ( e->type() ) {
-diff --git a/src/tools/qglist.cpp b/src/tools/qglist.cpp
-index b04ac75..fb94427 100644
---- a/src/tools/qglist.cpp
-+++ b/src/tools/qglist.cpp
-@@ -43,6 +43,10 @@
- #include "qdatastream.h"
- #include "qvaluelist.h"
-
-+#if defined(QT_THREAD_SUPPORT)
-+ #include "qmutex.h"
-+#endif // defined(QT_THREAD_SUPPORT)
-+
- /*!
- \class QLNode qglist.h
- \reentrant
-@@ -221,6 +225,9 @@ QDataStream &QGList::write( QDataStream &s, QPtrCollection::Item ) const
-
- QGList::QGList()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex = new QMutex(true);
-+#endif
- firstNode = lastNode = curNode = 0; // initialize list
- numNodes = 0;
- curIndex = -1;
-@@ -234,6 +241,9 @@ QGList::QGList()
- QGList::QGList( const QGList & list )
- : QPtrCollection( list )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex = new QMutex(true);
-+#endif
- firstNode = lastNode = curNode = 0; // initialize list
- numNodes = 0;
- curIndex = -1;
-@@ -258,6 +268,9 @@ QGList::~QGList()
- // twice on the same address! This is insane but let's try not to crash
- // here.
- iterators = 0;
-+#if defined(QT_THREAD_SUPPORT)
-+ //delete mutex;
-+#endif
- }
-
-
-@@ -290,11 +303,13 @@ QGList& QGList::operator=( const QGList &list )
-
- bool QGList::operator==( const QGList &list ) const
- {
-- if ( count() != list.count() )
-+ if ( count() != list.count() ) {
- return FALSE;
-+ }
-
-- if ( count() == 0 )
-+ if ( count() == 0 ) {
- return TRUE;
-+ }
-
- QLNode *n1 = firstNode;
- QLNode *n2 = list.firstNode;
-@@ -322,8 +337,15 @@ bool QGList::operator==( const QGList &list ) const
-
- QLNode *QGList::locate( uint index )
- {
-- if ( index == (uint)curIndex ) // current node ?
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( index == (uint)curIndex ) { // current node ?
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curNode;
-+ }
- if ( !curNode && firstNode ) { // set current node
- curNode = firstNode;
- curIndex = 0;
-@@ -332,13 +354,18 @@ QLNode *QGList::locate( uint index )
- int distance = index - curIndex; // node distance to cur node
- bool forward; // direction to traverse
-
-- if ( index >= numNodes )
-+ if ( index >= numNodes ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
-+ }
-
-- if ( distance < 0 )
-+ if ( distance < 0 ) {
- distance = -distance;
-+ }
- if ( (uint)distance < index && (uint)distance < numNodes - index ) {
-- node = curNode; // start from current node
-+ node = curNode; // start from current node
- forward = index > (uint)curIndex;
- } else if ( index < numNodes - index ) { // start from first node
- node = firstNode;
-@@ -352,13 +379,18 @@ QLNode *QGList::locate( uint index )
- forward = FALSE;
- }
- if ( forward ) { // now run through nodes
-- while ( distance-- )
-+ while ( distance-- ) {
- node = node->next;
-+ }
- } else {
-- while ( distance-- )
-+ while ( distance-- ) {
- node = node->prev;
-+ }
- }
- curIndex = index; // must update index
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curNode = node;
- }
-
-@@ -369,6 +401,9 @@ QLNode *QGList::locate( uint index )
-
- void QGList::inSort( QPtrCollection::Item d )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- int index = 0;
- register QLNode *n = firstNode;
- while ( n && compareItems(n->data,d) < 0 ){ // find position in list
-@@ -376,6 +411,9 @@ void QGList::inSort( QPtrCollection::Item d )
- index++;
- }
- insertAt( index, d );
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -385,6 +423,9 @@ void QGList::inSort( QPtrCollection::Item d )
-
- void QGList::prepend( QPtrCollection::Item d )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n = new QLNode( newItem(d) );
- Q_CHECK_PTR( n );
- n->prev = 0;
-@@ -395,6 +436,9 @@ void QGList::prepend( QPtrCollection::Item d )
- firstNode = curNode = n; // curNode affected
- numNodes++;
- curIndex = 0;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -404,16 +448,24 @@ void QGList::prepend( QPtrCollection::Item d )
-
- void QGList::append( QPtrCollection::Item d )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n = new QLNode( newItem(d) );
- Q_CHECK_PTR( n );
- n->next = 0;
-- if ( (n->prev = lastNode) ) // list is not empty
-+ if ( (n->prev = lastNode) ) { // list is not empty
- lastNode->next = n;
-- else // initialize list
-+ }
-+ else { // initialize list
- firstNode = n;
-+ }
- lastNode = curNode = n; // curNode affected
- curIndex = numNodes;
- numNodes++;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -423,25 +475,43 @@ void QGList::append( QPtrCollection::Item d )
-
- bool QGList::insertAt( uint index, QPtrCollection::Item d )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- if ( index == 0 ) {
- prepend( d );
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
-- } else if ( index == numNodes ) {
-+ }
-+ else if ( index == numNodes ) {
- append( d );
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
- QLNode *nextNode = locate( index );
-- if ( !nextNode )
-+ if ( !nextNode ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- QLNode *prevNode = nextNode->prev;
- register QLNode *n = new QLNode( newItem(d) );
- Q_CHECK_PTR( n );
- nextNode->prev = n;
-+ Q_ASSERT( (!((curIndex > 0) && (!prevNode))) );
- prevNode->next = n;
- n->prev = prevNode; // link new node into list
- n->next = nextNode;
- curNode = n; // curIndex set by locate()
- numNodes++;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -452,18 +522,30 @@ bool QGList::insertAt( uint index, QPtrCollection::Item d )
-
- void QGList::relinkNode( QLNode *n )
- {
-- if ( n == firstNode ) // already first
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( n == firstNode ) { // already first
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return;
-+ }
- curNode = n;
- unlink();
- n->prev = 0;
-- if ( (n->next = firstNode) ) // list is not empty
-+ if ( (n->next = firstNode) ) { // list is not empty
- firstNode->prev = n;
-- else // initialize list
-+ }
-+ else { // initialize list
- lastNode = n;
-+ }
- firstNode = curNode = n; // curNode affected
- numNodes++;
- curIndex = 0;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -473,8 +555,15 @@ void QGList::relinkNode( QLNode *n )
-
- QLNode *QGList::unlink()
- {
-- if ( curNode == 0 ) // null current node
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( curNode == 0 ) { // null current node
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
-+ }
- register QLNode *n = curNode; // unlink this node
- if ( n == firstNode ) { // removing first node ?
- if ( (firstNode = n->next) ) {
-@@ -500,9 +589,13 @@ QLNode *QGList::unlink()
- curIndex--;
- }
-
-- if ( iterators )
-+ if ( iterators ) {
- iterators->notifyRemove( n, curNode );
-+ }
- numNodes--;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return n;
- }
-
-@@ -513,6 +606,9 @@ QLNode *QGList::unlink()
-
- bool QGList::removeNode( QLNode *n )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- #if defined(QT_CHECK_NULL)
- if ( n == 0 || (n->prev && n->prev->next != n) ||
- (n->next && n->next->prev != n) ) {
-@@ -526,6 +622,9 @@ bool QGList::removeNode( QLNode *n )
- delete n;
- curNode = firstNode;
- curIndex = curNode ? 0 : -1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -537,13 +636,27 @@ bool QGList::removeNode( QLNode *n )
-
- bool QGList::remove( QPtrCollection::Item d )
- {
-- if ( d && find(d) == -1 )
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( d && find(d) == -1 ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- QLNode *n = unlink();
-- if ( !n )
-+ if ( !n ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- deleteItem( n->data );
- delete n;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -553,13 +666,27 @@ bool QGList::remove( QPtrCollection::Item d )
-
- bool QGList::removeRef( QPtrCollection::Item d )
- {
-- if ( findRef(d) == -1 )
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( findRef(d) == -1 ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- QLNode *n = unlink();
-- if ( !n )
-+ if ( !n ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- deleteItem( n->data );
- delete n;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -581,13 +708,27 @@ bool QGList::removeRef( QPtrCollection::Item d )
-
- bool QGList::removeAt( uint index )
- {
-- if ( !locate(index) )
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( !locate(index) ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- QLNode *n = unlink();
-- if ( !n )
-+ if ( !n ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- deleteItem( n->data );
- delete n;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -597,13 +738,23 @@ bool QGList::removeAt( uint index )
- */
- bool QGList::replaceAt( uint index, QPtrCollection::Item d )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- QLNode *n = locate( index );
-- if ( !n )
-+ if ( !n ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return FALSE;
-+ }
- if ( n->data != d ) {
- deleteItem( n->data );
- n->data = newItem( d );
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return TRUE;
- }
-
-@@ -615,10 +766,16 @@ bool QGList::replaceAt( uint index, QPtrCollection::Item d )
-
- QPtrCollection::Item QGList::takeNode( QLNode *n )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- #if defined(QT_CHECK_NULL)
- if ( n == 0 || (n->prev && n->prev->next != n) ||
- (n->next && n->next->prev != n) ) {
- qWarning( "QGList::takeNode: Corrupted node" );
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
- }
- #endif
-@@ -628,6 +785,9 @@ QPtrCollection::Item QGList::takeNode( QLNode *n )
- delete n; // delete the node, not data
- curNode = firstNode;
- curIndex = curNode ? 0 : -1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return d;
- }
-
-@@ -637,9 +797,15 @@ QPtrCollection::Item QGList::takeNode( QLNode *n )
-
- QPtrCollection::Item QGList::take()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- QLNode *n = unlink(); // unlink node
- Item d = n ? n->data : 0;
- delete n; // delete node, keep contents
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return d;
- }
-
-@@ -649,11 +815,21 @@ QPtrCollection::Item QGList::take()
-
- QPtrCollection::Item QGList::takeAt( uint index )
- {
-- if ( !locate(index) )
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
-+ if ( !locate(index) ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
-+ }
- QLNode *n = unlink(); // unlink node
- Item d = n ? n->data : 0;
- delete n; // delete node, keep contents
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return d;
- }
-
-@@ -663,10 +839,16 @@ QPtrCollection::Item QGList::takeAt( uint index )
-
- QPtrCollection::Item QGList::takeFirst()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- first();
- QLNode *n = unlink(); // unlink node
- Item d = n ? n->data : 0;
- delete n;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return d;
- }
-
-@@ -676,10 +858,16 @@ QPtrCollection::Item QGList::takeFirst()
-
- QPtrCollection::Item QGList::takeLast()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- last();
- QLNode *n = unlink(); // unlink node
- Item d = n ? n->data : 0;
- delete n;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return d;
- }
-
-@@ -690,14 +878,18 @@ QPtrCollection::Item QGList::takeLast()
-
- void QGList::clear()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n = firstNode;
-
- firstNode = lastNode = curNode = 0; // initialize list
- numNodes = 0;
- curIndex = -1;
-
-- if ( iterators )
-+ if ( iterators ) {
- iterators->notifyClear( FALSE );
-+ }
-
- QLNode *prevNode;
- while ( n ) { // for all nodes ...
-@@ -706,6 +898,9 @@ void QGList::clear()
- n = n->next;
- delete prevNode; // deallocate node
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -716,6 +911,9 @@ void QGList::clear()
-
- int QGList::findRef( QPtrCollection::Item d, bool fromStart )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n;
- int index;
- if ( fromStart ) { // start from first node
-@@ -731,6 +929,9 @@ int QGList::findRef( QPtrCollection::Item d, bool fromStart )
- }
- curNode = n;
- curIndex = n ? index : -1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curIndex; // return position of item
- }
-
-@@ -742,6 +943,9 @@ int QGList::findRef( QPtrCollection::Item d, bool fromStart )
-
- int QGList::find( QPtrCollection::Item d, bool fromStart )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n;
- int index;
- if ( fromStart ) { // start from first node
-@@ -757,6 +961,9 @@ int QGList::find( QPtrCollection::Item d, bool fromStart )
- }
- curNode = n;
- curIndex = n ? index : -1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curIndex; // return position of item
- }
-
-@@ -767,6 +974,9 @@ int QGList::find( QPtrCollection::Item d, bool fromStart )
-
- uint QGList::containsRef( QPtrCollection::Item d ) const
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n = firstNode;
- uint count = 0;
- while ( n ) { // for all nodes...
-@@ -774,6 +984,9 @@ uint QGList::containsRef( QPtrCollection::Item d ) const
- count++;
- n = n->next;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return count;
- }
-
-@@ -784,6 +997,9 @@ uint QGList::containsRef( QPtrCollection::Item d ) const
-
- uint QGList::contains( QPtrCollection::Item d ) const
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- register QLNode *n = firstNode;
- uint count = 0;
- QGList *that = (QGList*)this; // mutable for compareItems()
-@@ -792,6 +1008,9 @@ uint QGList::contains( QPtrCollection::Item d ) const
- count++;
- n = n->next;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return count;
- }
-
-@@ -839,10 +1058,19 @@ uint QGList::contains( QPtrCollection::Item d ) const
-
- QPtrCollection::Item QGList::first()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- if ( firstNode ) {
- curIndex = 0;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return (curNode=firstNode)->data;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
- }
-
-@@ -852,10 +1080,19 @@ QPtrCollection::Item QGList::first()
-
- QPtrCollection::Item QGList::last()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- if ( lastNode ) {
- curIndex = numNodes-1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return (curNode=lastNode)->data;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
- }
-
-@@ -865,15 +1102,24 @@ QPtrCollection::Item QGList::last()
-
- QPtrCollection::Item QGList::next()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- if ( curNode ) {
- if ( curNode->next ) {
- curIndex++;
- curNode = curNode->next;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curNode->data;
- }
- curIndex = -1;
- curNode = 0;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
- }
-
-@@ -883,15 +1129,24 @@ QPtrCollection::Item QGList::next()
-
- QPtrCollection::Item QGList::prev()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- if ( curNode ) {
- if ( curNode->prev ) {
- curIndex--;
- curNode = curNode->prev;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return curNode->data;
- }
- curIndex = -1;
- curNode = 0;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return 0;
- }
-
-@@ -902,9 +1157,16 @@ QPtrCollection::Item QGList::prev()
-
- void QGList::toVector( QGVector *vector ) const
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- vector->clear();
-- if ( !vector->resize( count() ) )
-+ if ( !vector->resize( count() ) ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return;
-+ }
- register QLNode *n = firstNode;
- uint i = 0;
- while ( n ) {
-@@ -912,10 +1174,16 @@ void QGList::toVector( QGVector *vector ) const
- n = n->next;
- i++;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
- void QGList::heapSortPushDown( QPtrCollection::Item* heap, int first, int last )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- int r = first;
- while( r <= last/2 ) {
- // Node r has only one child ?
-@@ -950,6 +1218,9 @@ void QGList::heapSortPushDown( QPtrCollection::Item* heap, int first, int last )
- }
- }
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -962,9 +1233,16 @@ void QGList::heapSortPushDown( QPtrCollection::Item* heap, int first, int last )
-
- void QGList::sort()
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- uint n = count();
-- if ( n < 2 )
-+ if ( n < 2 ) {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return;
-+ }
-
- // Create the heap
- QPtrCollection::Item* realheap = new QPtrCollection::Item[ n ];
-@@ -995,6 +1273,9 @@ void QGList::sort()
- }
-
- delete [] realheap;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- }
-
-
-@@ -1019,6 +1300,9 @@ QDataStream &operator<<( QDataStream &s, const QGList &list )
-
- QDataStream &QGList::read( QDataStream &s )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- uint num;
- s >> num; // read number of items
- clear(); // clear list
-@@ -1042,6 +1326,9 @@ QDataStream &QGList::read( QDataStream &s )
- }
- curNode = firstNode;
- curIndex = curNode ? 0 : -1;
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return s;
- }
-
-@@ -1051,12 +1338,18 @@ QDataStream &QGList::read( QDataStream &s )
-
- QDataStream &QGList::write( QDataStream &s ) const
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- s << count(); // write number of items
- QLNode *n = firstNode;
- while ( n ) { // write all items
- write( s, n->data );
- n = n->next;
- }
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return s;
- }
-
-@@ -1068,9 +1361,15 @@ QDataStream &QGList::write( QDataStream &s ) const
- */
- QLNode* QGList::erase( QLNode* it )
- {
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->lock();
-+#endif
- QLNode* n = it;
- it = it->next;
- removeNode( n );
-+#if defined(QT_THREAD_SUPPORT)
-+ //mutex->unlock();
-+#endif
- return it;
- }
-
-diff --git a/src/tools/qglist.h b/src/tools/qglist.h
-index fadc46c..dfacf47 100644
---- a/src/tools/qglist.h
-+++ b/src/tools/qglist.h
-@@ -59,6 +59,8 @@ private:
- QLNode( QPtrCollection::Item d ) { data = d; }
- };
-
-+class QMutex;
-+class QGListPrivate;
- class QGListIteratorList; // internal helper class
-
- class Q_EXPORT QGList : public QPtrCollection // doubly linked generic list
-@@ -147,6 +149,12 @@ private:
-
- QLNode *locate( uint ); // get node at i'th pos
- QLNode *unlink(); // unlink node
-+
-+#if defined(QT_THREAD_SUPPORT)
-+// QMutex* mutex;
-+#endif
-+
-+// QGListPrivate* d;
- };
-
-