Qt 3.3 regression: QValueList< QGuardedPtr<QObject> >::findIndex( QObject * ) fails

Ingo Klöcker kloecker at kde.org
Sat Dec 27 15:17:11 GMT 2003


if you compile the attached program against Qt 3.2 then you'll get
  Index of 'two' in the list is 1.

But if you compile it against Qt 3.3 then you'll get
  'two' not found in the list.

The reason for this is the changed implementation of 
QGuardedPtr::operator==. I simply copied the Qt 3.3 qguardedptr.h into 
the program and commented the #include <qguardedptr.h> to verify this 
(I'm still using libqt-mt.so.3.2.3 FWIW.).

This regression breaks KMail in quite a few places because we rely on 
the old behavior, e.g. we look for certain KMFolder* in 
QValueList<QGuardedPtr<KMFolder>>. I would be quite surprised if KMail 
would be the only application which will break because of this change.

Please revert the change for Qt 3.3.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: qvaluelistqguardedptr.cpp
Type: text/x-c++src
Size: 555 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031227/ca62eb04/attachment.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: signature
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031227/ca62eb04/attachment.sig>

More information about the kde-core-devel mailing list