rt/aaA.d Line: 553
    Ferhat Kurtulmuş 
    aferust at gmail.com
       
    Fri Feb 14 22:57:31 UTC 2020
    
    
  
I hesitated to post this on the topic of druntime because 
probably I will learn something new if I am totally/stupidly 
wrong.
In druntime/blob/master/src/rt/aaA.d Lines 553-562:
...
     auto p = aa.findSlotInsert(hash);
     if (p.deleted)
         --aa.deleted;
     // check load factor and possibly grow
     else if (++aa.used * GROW_DEN > aa.dim * GROW_NUM)
     {
         aa.grow(ti.key);
         p = aa.findSlotInsert(hash);
         assert(p.empty);
     }
...
findSlotInsert are called two times. Why not:
     if (++aa.used * GROW_DEN > aa.dim * GROW_NUM)
         aa.grow(ti.key);
     auto p = aa.findSlotInsert(hash); // only one call is enough?
     if (p.deleted)
         --aa.deleted;
...
If I am not wrong this modification will not corrupt the current 
state of the hash table?
    
    
More information about the Digitalmars-d-learn
mailing list