Wrong usage of QList::ConstIterator & QList::begin() ?

Albert Astals Cid aacid at kde.org
Sat Oct 18 11:40:34 BST 2008


A Dissabte 18 Octubre 2008, Christian Ehrlicher va escriure:
> Hi,
>
> While trying to fix some bugs in KFile* on windows I saw some places
> like this:
>
> for ( QStringList::ConstIterator it = m_dirList.begin();
>        it != m_dirList.end() && !terminationRequested();
>        ++it )
>
> Imo the programmer here expects that m_dirList.detach() isn't called but
> this is wrong.
>
> m_dirList.begin() does a detach, returns a non-const iterator and then
> the iterator is converted to a const iterator (see qlist.h:214 & 238).
>
> Therefore I suggest to add QT_STRICT_ITERATORS to the kdelibs flags. Or
> does this maybe break BC?

This is not wrong, just not what the developer "really wanted" but it works 
just fine, albeit a bit slower.

Albert

>
>
>
> Christian






More information about the kde-core-devel mailing list