Преглед изворни кода

structure: CHash: small optimization in Lookup()

ambrop7 пре 13 година
родитељ
комит
9923141a74
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      structure/CHash_impl.h

+ 4 - 3
structure/CHash_impl.h

@@ -160,12 +160,13 @@ static CHashRef CHash_Lookup (const CHash *o, CHashArg arg, CHashKey key)
 {
     size_t index = CHASH_PARAM_HASHFUN(arg, key) % o->numBuckets;
     
-    CHashRef e = CHash_Deref(arg, o->buckets[index]);
-    while (e.link != CHashNullLink()) {
+    CHashLink link = o->buckets[index];
+    while (link != CHashNullLink()) {
+        CHashRef e = CHash_Deref(arg, link);
         if (CHASH_PARAM_KEYSEQUAL(arg, CHASH_PARAM_GETKEY(arg, e), key)) {
             return e;
         }
-        e = CHash_Deref(arg, e.ptr->CHASH_PARAM_ENTRY_NEXT);
+        link = e.ptr->CHASH_PARAM_ENTRY_NEXT;
     }
     
     return CHashNullRef();