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