Keith McGuigan wrote:
:
Actually, we cannot re-visit an object that was re-hashed to a higher
slot. The body of one of those closures asserts out if you pass an
oop in it's new location (I think it's expecting to see a fowarding
pointer and doesn't see it). This is why I added the delayed_add list
originally. We could flag these entries as "already-moved" or
something like that, and reset the flag as we encounter them instead
of passing them to the iterator. I didn't do that at first because I
didn't want to make the entries bigger and use more memory, but maybe
I could do some bit tricks in the oop*. I'd rather not have to resort
to that unless the cost of processing the delayed list is an issue.
It doesn't appear to be at the moment.
Okay, got it, in that case what you have is fine as you definitively
don't want to increase the size of the entries as there could be
millions of them.
-Alan