[FrameData] Avoid iterating keys()

Instead use iterators. Could be changed to using keyBegin or something like that potentially.

The destructor is called 400 times on plasmashell startup for me.
Before: 250,000ns
After: 110,000ns

Differential Revision: https://phabricator.kde.org/D4350
This commit is contained in:
Kai Uwe Broulik 2017-01-30 15:08:09 +01:00
parent fe39905560
commit d38be811e8

View File

@ -48,8 +48,8 @@ static const int MAX_FRAME_SIZE = 100000;
FrameData::~FrameData()
{
foreach (FrameSvg *frame, references.keys()) {
frame->d->frames.remove(prefix);
for (auto it = references.constBegin(), end = references.constEnd(); it != end; ++it) {
it.key()->d->frames.remove(prefix);
}
}