ahmadsamir added inline comments.

INLINE COMMENTS

> dfaure wrote in kcoredirlister.cpp:1044
> It's generally considered bad practice to return a const value, because the 
> caller makes a copy anyway, so this doesn't guarantee anything. And it 
> removes the benefits of rvalues that can be moved, since C++11.
> 
> I can see how range-for actually benefits from this, though.
> 
> It just seems that the generally agreed solution is to return non-const (for 
> the other benefits) and use a local const variable as intermediary when using 
> this in a range-for.

Noted.

> dfaure wrote in kcoredirlister.cpp:1960
> const

(Note to self, "we need a copy" doesn't necessarily mean a non-const copy).

> dfaure wrote in kcoredirlister.cpp:2073
> `holders.count()`, to match what the orig code was doing

Ouch, right.

> dfaure wrote in kcoredirlister.cpp:2222
> Why not just `qAsConst(listDirs)`? Did you identify a risk that the body of 
> the for loop modifies lstDirs?

I thought that way it doesn't get cast (with qAsConst) twice, as lstDirs is 
used in another for loop a couple of lines down. But I was wrong, qAsConst 
doesn't copy its arguments, so qAsConst is better suited.

However this loop doesn't look like it modifies lstDirs.

> kcoredirlister.cpp:2237
>  
> -    Q_FOREACH (const QUrl &dir, lstDirs) {
> +    for (const QUrl &dir : dirs) {
>          KFileItemList deletedItems;

But this one might change lstDirs, as itemsDeleted is emitted, which calls 
deleteDir() and forgetDirs(); I am not sure though. I'll use a const var for 
this loop.

REPOSITORY
  R241 KIO

REVISION DETAIL
  https://phabricator.kde.org/D23902

To: ahmadsamir, kde-frameworks-devel, dfaure
Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns

Reply via email to