rt/aaA.d Line: 553
Ferhat Kurtulmuş
aferust at gmail.com
Fri Feb 14 23:36:21 UTC 2020
On Friday, 14 February 2020 at 23:19:31 UTC, Paul Backus wrote:
> On Friday, 14 February 2020 at 22:57:31 UTC, Ferhat Kurtulmuş
> wrote:
>> 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?
>
> `used` counts both filled and deleted buckets, so it shouldn't
> be incremented when changing a deleted bucket into a filled
> bucket.
İf ((aa.used + 1)* 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;
else
++aa.used;
More information about the Digitalmars-d-learn
mailing list