D17028: Loader: Avoid Q_FOREACH
loh tar
noreply at phabricator.kde.org
Tue Nov 20 19:08:20 GMT 2018
loh.tar added inline comments.
INLINE COMMENTS
> davidedmundson wrote in loader.cpp:273
> > Probably, yes. But Qt docu always says, "thanks to implicit sharing copying a container is very fast"
>
> That's mixing up docs.
>
> foreach() always does a const copy of the list. This is a cheap implicitly shared copy.
> when we loop we're never detaching this list because it's const.
>
> for() does not
> So when we loop if we call begin() we might get the non-const version. If this list is used elsewhere that means we detach and that causes a deep-copy. This is expensive.
>
> In this specific case language() returns a new QStringList (.keys() generates a new list) so I /think/ it is fine,
>
> but it's definitely ambiguous. A qAsConst would make sense here.
> A qAsConst would make sense here.
In which way? This is not working:
for (const QString &langCode : qAsConst(languages()))
So you like to see this?
const QStringList constLanguages = languages();
for (const QString &langCode : constLanguages) {
REPOSITORY
R246 Sonnet
REVISION DETAIL
https://phabricator.kde.org/D17028
To: loh.tar, davidedmundson
Cc: smartins, kde-frameworks-devel, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20181120/52963779/attachment.html>
More information about the Kde-frameworks-devel
mailing list