Juergen Boemmels <[EMAIL PROTECTED]> wrote:
> But in t/pmc/io_2.pasm is a more nasty problem. The sweep 0 call does
> (sometimes) not trigger the destruction of the PMC containing the
> IO-Object, even though it is not connected to the root-set.

> In trace_system_areas the variable env is not initialised, and in this
> area was a pointer to the File from a previous call.

Shouldn't the setjmp(3) call fill the C<jmp_buf env> variable? Anyway,
if C<env> isn't filled totally, we would have the observed behavior.
But ...

> ... So the
> garbage-collector marked the File as live.

... we still have a *big* problem here. During marking the system area,
we might always detect stale objects and mark them live. This isn't a
problem for plain objects, but objects that need timely destruction will
not get destroyed properly.

And valgrind still does report unitialized memory on the stack.

> bye
> boe

BTW good analysis, thanks
leo

Reply via email to