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

List:       kde-commits
Subject:    kdemultimedia/juk
From:       Scott Wheeler <wheeler () kde ! org>
Date:       2003-08-15 16:15:43
[Download RAW message or body]

CVS commit by wheeler: 

Remove the caching code here.  Since the new optimized comparisons are much
faster, the overhead of caching the results actually makes this block of
code slower on average since the hit rate is pretty low.


  M +6 -34     playlistitem.cpp   1.51


--- kdemultimedia/juk/playlistitem.cpp  #1.50:1.51
@@ -234,47 +234,19 @@ int PlaylistItem::compare(QListViewItem 
 int PlaylistItem::compare(const PlaylistItem *firstItem, const PlaylistItem \
*secondItem, int column, bool) const  {
-
-    // Try some very basic caching for "two in a row" searches.  From what I've
-    // seen this is ~15% of all calls.
-
-    static const PlaylistItem *previousFirstItem = 0;
-    static const PlaylistItem *previousSecondItem = 0;
-    static int previousColumn = 0;
-    static int previousResult = 0;
-
-    if(firstItem == previousFirstItem && secondItem == previousSecondItem && column \
                == previousColumn)
-        return previousResult;
-
-    previousFirstItem = firstItem;
-    previousSecondItem = secondItem;
-    previousColumn = column;
-
     if(column == TrackNumberColumn) {
-        if(firstItem->tag()->trackNumber() > secondItem->tag()->trackNumber()) {
-            previousResult = 1;
+        if(firstItem->tag()->trackNumber() > secondItem->tag()->trackNumber())
             return 1;
-        }
-        else if(firstItem->tag()->trackNumber() < secondItem->tag()->trackNumber()) \
                {
-            previousResult = -1;
+        else if(firstItem->tag()->trackNumber() < secondItem->tag()->trackNumber())
             return -1;
-        }
-        else {
-            previousResult = 0;
+        else
             return 0;
         }
-    }
     else if(column == LengthColumn) {
-        if(firstItem->tag()->seconds() > secondItem->tag()->seconds()) {
-            previousResult = 1;
+        if(firstItem->tag()->seconds() > secondItem->tag()->seconds())
             return 1;
-        }
-        else if(firstItem->tag()->seconds() < secondItem->tag()->seconds()) {
-            previousResult = -1;
+        else if(firstItem->tag()->seconds() < secondItem->tag()->seconds())
             return -1;
-        }
-        else {
-            previousResult = 0;
+        else
             return 0;
-        }
     }
     else


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

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