At 11:15 PM +0000 5/14/02, Steve Fink (via RT) wrote:
>The most potentially controversial attribute of these hashtables is
>the use of direct memory pointers to and between the buckets. These
>pointers are invalidated every time buffers are compacted, so at the
>beginning of every public entry point, restore_invariants() is called.
>It checks to see if the buckets have moved (they're the only things
>pointed to directly), and if so, they are swept through and adjusted
>to the new position. The same routine is used to resize the table when
>it reaches 80% full. It's very similar to the DOD sweep phase.
>
>I tried using indexes for everything, but they cluttered the code too
>much and it got hard to tell what was going on. But it would probably
>be faster that way.

FWIW, on stuff like this--as long as it doesn't leak out, I don't 
care. Only things that affect other parts of the engine worry me 
much. Anything self-contained can later be fixed or replaced if it 
turns out to be a problem.
-- 
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                       teddy bears get drunk

Reply via email to