From d9b3ce9038ed83d4967eb9a5111d57f6081a1394 Mon Sep 17 00:00:00 2001 From: Kevin Funk Date: Fri, 19 Feb 2016 00:53:48 +0100 Subject: KConfigIniBackend: Fix expensive detach in lookup Differential Revision: https://phabricator.kde.org/D990 --- src/core/kconfigini.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/core/kconfigini.cpp') diff --git a/src/core/kconfigini.cpp b/src/core/kconfigini.cpp index 83a6c3cf..3d0af962 100644 --- a/src/core/kconfigini.cpp +++ b/src/core/kconfigini.cpp @@ -46,11 +46,12 @@ KCONFIGCORE_EXPORT bool kde_kiosk_exception = false; // flag to disable kiosk re static QByteArray lookup(const KConfigIniBackend::BufferFragment &fragment, QHash *cache) { - QHash::iterator it = cache->find(fragment); - if (it == cache->end()) { - it = cache->insert(fragment, fragment.toByteArray()); + auto it = cache->constFind(fragment); + if (it != cache->constEnd()) { + return it.value(); } - return it.value(); + + return cache->insert(fragment, fragment.toByteArray()).value(); } QString KConfigIniBackend::warningProlog(const QFile &file, int line) -- cgit v1.2.1