hashlib mfp<> performance improvements
authorClifford Wolf <clifford@clifford.at>
Mon, 1 Feb 2016 09:03:03 +0000 (10:03 +0100)
committerClifford Wolf <clifford@clifford.at>
Mon, 1 Feb 2016 09:03:03 +0000 (10:03 +0100)
kernel/hashlib.h

index f740fc50d6d93578e93ed6b9b2444b0cfc7c02c2..a31c62e5661e167cf87387b244f386678510a3ab 100644 (file)
@@ -1015,7 +1015,10 @@ public:
 
        const K &find(const K &a) const
        {
-               return (*this)[ifind((*this)(a))];
+               int i = database.at(a, -1);
+               if (i < 0)
+                       return a;
+               return (*this)[ifind(i)];
        }
 
        void merge(const K &a, const K &b)
@@ -1025,7 +1028,9 @@ public:
 
        void promote(const K &a)
        {
-               ipromote((*this)(a));
+               int i = database.at(a, -1);
+               if (i >= 0)
+                       ipromote(i);
        }
 
        void swap(mfp &other)