On Thu, 2006-03-23 at 00:22 +0900, Mauricio Fernandez wrote: > On Mon, Mar 20, 2006 at 05:41:56PM +0900, Ross Bamford wrote: > > # This WeakHash implementation is by Mauricio Fernandez. I > > # just added support for a default, and full key reclaimation > > # to suit our need to have the default block run as and when > > # (but only when) necessary. > > # > > # See: http://eigenclass.org/hiki.rb?weakhash+and+weakref > > I found your message indirectly via my httpd logs :) > I meant to put a thanks in the message body after I decided the code was too long to post inline, but I forgot (sorry about that). Glad you saw it, and thanks for the wicked implementation :) > > class WeakHash #:nodoc: all > [...] > > def []( key ) > > value_id = @cache[key.hash] > ======== > This will fail when you have hash collisions; I think it should be 'key' > as in the original code (same goes for []=). Ahh, of course. I think collisions are less likely given the specific usage of WeakHash in this case (arrays with strictly object_id based hashes, of objects that outlive the hash), but of course still possible so I'll fix that up later today. Cheers, -- Ross Bamford - rosco / roscopeco.REMOVE.co.uk