[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kfile
From:       Peter Penz <peter.penz () gmx ! at>
Date:       2010-05-23 19:31:01
Message-ID: 20100523193101.64F3DAC8BF () svn ! kde ! org
[Download RAW message or body]

SVN commit 1129796 by ppenz:

Performance optimization: Although KFileItem::isHidden() is quite fast, it gets \
rather expensive when calling n * log2(n) times to sort items. The patch improves the \
performance when loading /usr/bin by around 4 %.

 M  +8 -4      kdirsortfilterproxymodel.cpp  


--- trunk/KDE/kdelibs/kfile/kdirsortfilterproxymodel.cpp #1129795:1129796
@@ -147,18 +147,22 @@
 
     // Folders go before files if the corresponding setting is set.
     if (d->m_sortFoldersFirst) {
-        if (leftFileItem.isDir() && !rightFileItem.isDir()) {
+        const bool leftItemIsDir  = leftFileItem.isDir();
+        const bool rightItemIsDir = rightFileItem.isDir();
+        if (leftItemIsDir && !rightItemIsDir) {
             return isLessThan;
-        } else if (!leftFileItem.isDir() && rightFileItem.isDir()) {
+        } else if (!leftItemIsDir && rightItemIsDir) {
             return !isLessThan;
         }
     }
 
 
     // Hidden elements go before visible ones.
-    if (leftFileItem.isHidden() && !rightFileItem.isHidden()) {
+    const bool leftItemIsHidden  = leftFileItem.isHidden();
+    const bool rightItemIsHidden = rightFileItem.isHidden();
+    if (leftItemIsHidden && !rightItemIsHidden) {
         return isLessThan;
-    } else if (!leftFileItem.isHidden() && rightFileItem.isHidden()) {
+    } else if (!leftItemIsHidden && rightItemIsHidden) {
         return !isLessThan;
     }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic