ivan requested changes to this revision.
ivan added a comment.
This revision now requires changes to proceed.


  Inserting/Removing/Updating a sorted list does not need to resort every time 
- removing is easy, adding a new item is std::lower_bound (a binary search), 
and updating is a combination of the two.

INLINE COMMENTS

> Activities.cpp:54
>  
> +static
> +bool infoLessThan(const ActivityInfo &info, const ActivityInfo &other)

You can use anonymous namespace for this (instead of `static`) or just make it 
a non-static function.

It can be marked as `inline`, although the compiler will probably do that 
regardless of you saying so.

You can rename it to something like `nameBasedOrdering` - better communicates 
what it does.

> Activities.cpp:349
>      }
> +    updateSortedActivityList();
>  

You can just find the activity in the list, and remove it - the order for the 
rest will not change.

> Activities_p.h:76
>      QHash<QString, Activities::State> activities;
> +    QList<ActivityInfo> sortedActivities;
>      QReadWriteLock activitiesLock;

`QList` -> `QVector`.

`QList` is an evil and slow class :)

REPOSITORY
  R161 KActivity Manager Service

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

To: muesli, ivan
Cc: ivan, plasma-devel, LeGast00n, jraleigh, fbampaloukas, GB_2, ragreen, 
Pitel, ZrenBot, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, 
sebas, apol, mart

Reply via email to