OSDN Git Service

Revert "avoid two icon cache lookups"
authorIvailo Monev <xakepa10@laimg.moc>
Fri, 12 Jul 2019 18:35:44 +0000 (18:35 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Fri, 12 Jul 2019 18:35:44 +0000 (18:35 +0000)
This reverts commit 62f75b51f33846d4feca4f200d353cb8e0d03f7a.

src/gui/image/qicon.cpp

index d87b243..6ded0e9 100644 (file)
@@ -159,14 +159,13 @@ static QPixmapIconEngineEntry *bestSizeMatch( const QSize &size, QPixmapIconEngi
 QPixmapIconEngineEntry *QPixmapIconEngine::tryMatch(const QSize &size, QIcon::Mode mode, QIcon::State state)
 {
     QPixmapIconEngineEntry *pe = 0;
-    for (int i = 0; i < pixmaps.count(); ++i) {
+    for (int i = 0; i < pixmaps.count(); ++i)
         if (pixmaps.at(i).mode == mode && pixmaps.at(i).state == state) {
             if (pe)
                 pe = bestSizeMatch(size, &pixmaps[i], pe);
             else
                 pe = &pixmaps[i];
         }
-    }
     return pe;
 }
 
@@ -895,8 +894,9 @@ QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)
         return icon;
     }
 
-    icon = *qtIconCache()->object(name);
-    if (icon.isNull()) {
+    if (qtIconCache()->contains(name)) {
+        icon = *qtIconCache()->object(name);
+    } else {
         QIcon *cachedIcon  = new QIcon(new QIconLoaderEngine(name));
         qtIconCache()->insert(name, cachedIcon);
         icon = *cachedIcon;