On Fri, Dec 14, 2001 at 02:30:27AM +0900, Yukihiro Matsumoto wrote: > In message "[ruby-talk:26958] some more finalizer weirdness" > on 01/11/30, Paul Brannan <pbrannan / zaphod.atdesk.com> writes: > |I don't know what's happening here, but my first suspicion is that it > |has something to do with bindings (?). Any ideas? > > I guess invoking puts "foo" preserves its receiver b. This sounds reasonable, if perhaps a bit odd, but why would it preserve the old @obj, to which there should be no more references? It almost seems like the block itself is storing a reference to @obj, which seems strange to me. I suppose what I should do is place a breakpoint in rb_gc_mark, then figure out who is marking the object, but this would be very time-consuming. Paul