> > > Btw, this is only a weak guess about what's going on, because the
> > > corruption I'm seeing isn't even in the linked list nodes. It only
> > > happens with GC_DEBUG, but it's not an infant mortality bug.
> > 
> > GC_DEBUG adds extra calls to do_dod_run (infant mortality), and
> > do_collect. You're likely running into problems where you are referencing
> > memory which is getting moved out from under you. Instead of blindly
> > referencing the data in the buffer itself, you should be referencing the
> > buffer header.
> 
> Doesn't look like it. I've instrumented every place where memory gets
> moved around, and it appears that even though it is correctly marking
> my Buffer as live, it's still copying something else onto its memory.
> Which is in itself not a problem, because that's what I thought should
> happen -- but it should be copying my stuff to somewhere else first! I
> feel discriminated against. My memory isn't as important as someone
> else's.

Doh! Never mind. The problem was that my buffer was coming from
new_tracked_header, and those aren't scanned. Basically, I didn't
finish implementing it. (And I probably won't until Peter Gibbs's
stuff lands.)

stoopid sfink.

Reply via email to