From d809e9e4dccd3c9c99b670c30cce52a319b84754 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Thu, 1 Jul 2021 03:21:42 +0200 Subject: [PATCH] Remove container 2x lookups Instead of checking for existance and then getting the value. Look it up once and use the value if avaliable. This saves us one hash look-up per execution which can be considerable, especially in the case of findElementRect. --- src/plasma/svg.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plasma/svg.cpp b/src/plasma/svg.cpp index c9a74a02c..97bf73259 100644 --- a/src/plasma/svg.cpp +++ b/src/plasma/svg.cpp @@ -188,7 +188,8 @@ bool SvgRectsCache::findElementRect(uint id, const QString &filePath, QRectF &re auto it = m_localRectCache.find(id); if (it == m_localRectCache.end()) { - if (m_invalidElements.contains(filePath) && m_invalidElements[filePath].contains(id)) { + auto elements = m_invalidElements.value(filePath); + if (elements.contains(id)) { rect = QRectF(); return true; } @@ -243,7 +244,8 @@ QList SvgRectsCache::sizeHintsForId(const QString &path, const QString &i { const QString pathId = path % id; - if (!m_sizeHintsForId.contains(pathId)) { + auto it = m_sizeHintsForId.constFind(pathId); + if (it == m_sizeHintsForId.constEnd()) { KConfigGroup imageGroup(m_svgElementsCache, path); const QStringList &encoded = imageGroup.readEntry(id, QStringList()); QList sizes; @@ -261,7 +263,7 @@ QList SvgRectsCache::sizeHintsForId(const QString &path, const QString &i return sizes; } - return m_sizeHintsForId.value(pathId); + return *it; } void SvgRectsCache::insertSizeHintForId(const QString &path, const QString &id, const QSize &size)