Thanks for having a look! On 14/07/2021 18:18, Zhihong Yu wrote:
For the loop over the hash:+ for (int idx = 0; idx < capacity; idx++) { - if (olditemsarr[i] != resarr->invalidval) - ResourceArrayAdd(resarr, olditemsarr[i]); + while (owner->hash[idx].kind != NULL && + owner->hash[idx].kind->phase == phase) ... + } while (capacity != owner->capacity);Since the phase variable doesn't seem to change for the while loop, I wonder what benefit the while loop has (since the release is governed by phase).
Hmm, the phase variable doesn't change, but could the element at 'owner->hash[idx]' change? I'm not sure about that. The loop is supposed to handle the case that the hash table grows; could that replace the element at 'owner->hash[idx]' with something else, with different phase? The check is very cheap, so I'm inclined to keep it to be sure.
- Heikki
